Сохранение и чтение TStringGrid

Материал из DRKB

Сохранение и чтение TStringGrid[править | править код]

procedure SaveGrid;
var
  f: textfile;
  x, y: integer;
begin
  AssignFile(f, 'Filename');
  Rewrite(f);
  WriteLn(f, StringGrid.ColCount);
  WriteLn(f, StringGrid.RowCount);
  for X := 0 to StringGrid.ColCount - 1 do
    for y := 0 to StringGrid.RowCount - 1 do
      WriteLn(F, StringGrid.Cells[x, y]);
  CloseFile(f);
end;


procedure LoadGrid;
var
  f: textfile;
  temp, x, y: integer;
  tempstr: string;
begin
  AssignFile(f, 'Filename');
  Reset(f);
  ReadLn(f, temp);
  StringGrid.ColCount := temp;
  ReadLn(f, temp);
  StringGrid.RowCount := temp;
  for X := 0 to StringGrid.ColCount - 1 do
    for y := 0 to StringGrid.RowCount - 1 do
    begin
      ReadLn(F, tempstr);
      StringGrid.Cells[x, y] := tempstr;
    end;
  CloseFile(f);
end;


Source: http://delphiworld.narod.ru/
ID: 01058



// Save a TStringGrid to a file 
procedure SaveStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f: TextFile;
  i, k: Integer;
begin
  AssignFile(f, FileName);
  Rewrite(f);
  with StringGrid do
  begin
    // Write number of Columns/Rows 
    Writeln(f, ColCount);
    Writeln(f, RowCount);
    // loop through cells 
    for i := 0 to ColCount - 1 do
      for k := 0 to RowCount - 1 do
        Writeln(F, Cells[i, k]);
  end;
  CloseFile(F);
end;

// Load a TStringGrid from a file 
procedure LoadStringGrid(StringGrid: TStringGrid; const FileName: TFileName);
var
  f:          TextFile;
  iTmp, i, k: Integer;
  strTemp:    String;
begin
  AssignFile(f, FileName);
  Reset(f);
  with StringGrid do
  begin
    // Get number of columns 
    Readln(f, iTmp);
    ColCount := iTmp;
    // Get number of rows 
    Readln(f, iTmp);
    RowCount := iTmp;
    // loop through cells & fill in values 
    for i := 0 to ColCount - 1 do
      for k := 0 to RowCount - 1 do
      begin
        Readln(f, strTemp);
        Cells[i, k] := strTemp;
      end;
  end;
  CloseFile(f);
end;

// Save StringGrid1 to 'c:\temp.txt': 
procedure TForm1.Button1Click(Sender: TObject);
begin
  SaveStringGrid(StringGrid1, 'c:\temp.txt');
end;

// Load StringGrid1 from 'c:\temp.txt': 
procedure TForm1.Button2Click(Sender: TObject);
begin
  LoadStringGrid(StringGrid1, 'c:\temp.txt');
end;


Source: Взято с сайта: http://www.swissdelphicenter.ch
ID: 01059