Thema: Delphi Stringrid

Einzelnen Beitrag anzeigen

marabu

Registriert seit: 6. Apr 2005
10.109 Beiträge
 

Re: Stringrid

  Alt 8. Apr 2006, 13:36
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
  Mit Zitat antworten Zitat