Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Daten aus einem StringGrid in einer Datei speichern (https://www.delphipraxis.net/51902-daten-aus-einem-stringgrid-einer-datei-speichern.html)

Technikus 21. Aug 2005 19:36


Daten aus einem StringGrid in einer Datei speichern
 
Hallo!

Ich kann die Daten eines StringGrids in einer Datei nicht speichern.[Delphi 2005 Prof.]
Kann mir bitte jemand helfen? Das Compilieren hängt an der Stelle fs.writebuffer...
>>E2250 Es gibt keine überladene Version von 'WriteBuffer', die man mit diesen Argumenten aufrufen kann<<

Delphi-Quellcode:
type TLeistung= record
nr: byte;
Spannung, Strom, Leistung: double;
end;

procedure TForm1.Button1_SpeichernClick(Sender: TObject);
var Messwert: TLeistung;
    i, anzahl: integer;
    fs : TFileStream;
begin
  anzahl:=StrToInt(Edit3_Eingabe_anzahl.Text);
  fs := TFileStream.Create('solarz.dat', fmCreate);
  try
  for i:= 1 to anzahl do
  with Messwert do
   begin
    nr:= i;
    Spannung:= StrToFloat(StringGrid1.Cells[1,i]);
    Strom:= StrToFloat (StringGrid1.Cells [2,i]);
    Leistung:=StrToFloat (StringGrid1.Cells [3,i]);
    end;
    fs.WriteBuffer(Messwert,Sizeof(Messwert));{hier kommt die Fehlermeldung}
  finally
     fs.Free;
  end;
end;
In der Hilfe finde ich z.B. den Syntax
[Delphi] public procedure WriteBuffer(const Buffer: array of Byte, Count: Integer) und ähnliches;

Vielleicht weiß jemand, was ich wie ändern muss.
Danke
Technikus

alzaimar 22. Aug 2005 21:28

Re: Daten aus einem StringGrid in einer Datei speichern
 
Typcasting sollte funktionieren. Und die Delphi Hilfe. Und die Beispiele.

marabu 23. Aug 2005 07:31

Re: Daten aus einem StringGrid in einer Datei speichern
 
Das zugrundeliegende Problem wurde zwar schon in einem Parallel-Thread gelöst, aber weil der Titel hier so schön ist - ein 5-Zeiler zum Speichern als CSV-Datei:

Delphi-Quellcode:
procedure SaveGrid(grid: TStringGrid; fileName: string);
var
  iRow: integer;
  sl: TStringList;
begin
  sl := TStringList.Create;
  for iRow := 0 to Grid.RowCount - 1 do
    sl.Add(Grid.Rows[iRow].CommaText);
  sl.SaveToFile(fileName);
  sl.Free;
end;
Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 19:40 Uhr.

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz