(Gast)
n/a Beiträge
|
Stringgrid speichern und laden über einen Stream
16. Okt 2010, 19:23
Hallo Leute ich habe ein Problem und finde seit Stunden den Fehler nicht :/
Ich habe ein Stringgrid und möchte das gerne über einen Stream in eine Datei speichern und habe folgenden Code gefunden und versucht anzuwenden:
Delphi-Quellcode:
//StringGrid speichern (mit einem Stream)
procedure saveGrdToFile(grd: TStringGrid; Pfad : String);
var
i,j,row,col,len : Word;
buff: string;
begin
fStream := TFileStream.Create(pfad, fmCreate);
fStream.Free;
fStream := TFileStream.Create(pfad, fmOpenWrite);
col := grd.ColCount -1;
row := grd.RowCount -1;
fStream.WriteBuffer(row, SizeOf(Word));
fStream.writeBuffer(col, SizeOf(Word));
for i := 0 to row do
for j := 0 to col do
begin
buff := grd.Cells[j,i];
len := Length(buff);
fStream.WriteBuffer(len, SizeOf(Word));
fStream.WriteBuffer(buff[1], len)
end;
fStream.Free;
end;
//StringGrid laden (mit einem Stream)
procedure loadGrdFromFile(grd: TStringGrid; Pfad : String);
var i,j,row,col,len : Word;
buff: string;
begin
fStream := TFileStream.Create(pfad, fmOpenRead);
fStream.ReadBuffer(row, SizeOf(Word));
fStream.ReadBuffer(col, SizeOf(Word));
grd.ColCount := col + 1;
grd.RowCount := row + 1;
for i := 0 to row do
for j := 0 to col do
begin
fStream.ReadBuffer(len, SizeOf(Word));
SetLength(buff, len);
fStream.ReadBuffer(buff[1], len);
grd.Cells[j,i] := buff
end;
fStream.Free
end;
und dann habe ich noch einen Button erstellt und wollte die Speicherprozedur aufrufen:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
begin
saveGrdToFile('D:\Test.dat',
[StringGrid1]);
end;
und dann kommt immer die Meldung: [Error] Unit1.pas(80): Incompatible types: 'TStringGrid' and 'String'
Es wäre schön wenn jemand eine Idee hat, was ich noch ändern oder probieren kann, damit das ganze funktioniert. Mir wäre aber wichtig, dass ich das über einen Stream schaffe..
Grüße
Geändert von Delphineuling10 (17. Okt 2010 um 01:21 Uhr)
|
|
Zitat
|