AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Sprachen und Entwicklungsumgebungen Sonstige Fragen zu Delphi Stringgrid speichern und laden über einen Stream
Thema durchsuchen
Ansicht
Themen-Optionen

Stringgrid speichern und laden über einen Stream

Ein Thema von Delphineuling10 · begonnen am 16. Okt 2010 · letzter Beitrag vom 17. Okt 2010
 
Delphineuling10
(Gast)

n/a Beiträge
 
#1

Stringgrid speichern und laden über einen Stream

  Alt 16. Okt 2010, 18: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 00:21 Uhr)
  Mit Zitat antworten Zitat
 


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:19 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz