Herzlich willkommen in der Delphi-PRAXiS, RafNix.
Das Laden eines StringGrid aus einer
CSV-Datei ist sehr einfach:
Delphi-Quellcode:
procedure LoadFromFile(sg: TStringGrid;
csv: TFileName);
var
sRows, sCols: TStrings;
i: Integer;
begin
sRows := TStringList.Create;
sRows.LoadFromFile(
csv);
sCols := TStringList.Create;
sCols.CommaText := sRows[0];
sG.ColCount := sCols.Count;
sCols.Free;
SG.RowCount := sRows.Count;
for i := 0
to Pred(sRows.Count)
do
SG.Rows[i].CommaText := sRows[i];
sRows.Free;
end;
procedure TDemoForm.LoadButtonClick(Sender: TObject);
begin
LoadFromFile(SG, '
C:\daten\messdaten.csv');
end;
Dabei wird das Grid schon optimal dimensioniert. Wenn du dann später neue Werte eintragen willst und diese in einer
CSV-Zeile bereit stellst, dann geht das Anhängen so:
Delphi-Quellcode:
procedure AddRow(sg: TStringGrid; row: String);
var
iCol, iRow: Integer;
begin
iRow := SG.RowCount;
SG.RowCount := Succ(iRow);
for iCol := 0 to Pred(SG.ColCount) do
SG.Rows[iRow].CommaText := row;
end;
procedure TDemoForm.AddButtonClick(Sender: TObject);
var
s: TStrings;
begin
s := TStringList.Create;
if InputRow(s) then
AddRow(sg, s.CommText);
s.Free;
end;
InputRow() ist eine Funktion, welche eine neue Zeile mit Messwerten im
CSV-Format bereit stellt.
Freundliche Grüße vom marabu