Home » Tipps & Tricks » Komponenten » TStringGrid » Inhalt eines StringGrids speichern und laden

Inhalt eines StringGrids speichern und laden

Folgende Prozeduren speichern bzw. laden den Inhalt eines TStringGrid-Objekts.Das Vorgehen ist dabei folgendes: Mithilfe von StringList wird eine Textdatei angelegt, die in den ersten beiden Zeilen die Zeilenzahl (RowCount) und die Spaltenzahl (ColCount) beinhalten. Anschließend werden in einer Schleife alle Zeilen des StringGrids ausgelesen und in die Textdatei geschrieben. Beim Auslesen wird die Funktion Rows[i].CommaText verwendet, die den kompletten Zeileninhalt als einen String zurückgibt, in dem die einzelnen Spalten durch Komma getrennt sind.Prozedur zum Speichern (Parameter: Name des StringGrids und Name der Datei, in der der Inhalt gespeichert werden soll):

procedure SaveStringGridToFile(StringGrid: TStringGrid; const FileName: String);
var
  F: TStringList;
  i: Integer;
begin
  F := TStringList.Create;
  try
    F.Add(IntToStr(StringGrid.RowCount));
    F.Add(IntToStr(StringGrid.ColCount));
    for i := 0 to (StringGrid.RowCount - 1) do
      F.Add(StringGrid.Rows[i].CommaText);
    F.SaveToFile(FileName);
  finally
    F.Free;
  end;
end;

Prozedur zum Laden:

procedure LoadStringGridFromFile(StringGrid: TStringGrid; const FileName: String);
var
  F: TStringList;
  i: Integer;
begin
  F := TStringList.Create;
  try
    F.LoadFromFile(FileName);
    StringGrid.RowCount := StrToInt(F[0]);
    StringGrid.ColCount := StrToInt(F[1]);
    for i := 0 to (StringGrid.RowCount - 1) do
      StringGrid.Rows[i].CommaText := F[i + 2];
  finally
    F.Free;
  end;
end;