Einzelnen Beitrag anzeigen

Benutzerbild von Chemiker
Chemiker

Registriert seit: 14. Aug 2005
1.859 Beiträge
 
Delphi 11 Alexandria
 
#5

Re: String in Stream speichern

  Alt 30. Jan 2008, 20:33
Hallo d1ng0d0gt0r,

was für ein Name.

Ich habe zufällig heute einen neuen Urlaubsplan gemacht und musste dafür die Daten aus einem StringGrid abspeichern.

Erst mal abspeichern:

Delphi-Quellcode:
procedure TMainFormUrlausPlaner.FileSaveAs1Accept(Sender: TObject);
var
  DateiName: TFileName;
  i, y : integer;
  f: TFileStream;
  buff: String;
  len: Word;
begin
  DateiName:= FileSaveAs1.Dialog.FileName;
  f:= TFileStream.Create(DateiName,fmCreate or fmOpenWrite);
  try
    if FileExists(DateiName) then
    begin
    // Speichern des StringGrid - Daten
      for I := 0 to coTage do
      begin
        for y := 0 to coMitarbeiterAnzahl do
        begin
          buff:= strGridJahr.cells[i,y];
          len:= length(buff);
          f.WriteBuffer(len,SizeOF(Word));
          f.WriteBuffer(buff[1],len);
        end;
      end;
    end;
   finally
     f.free;
  end;
end;
Und jetzt die Daten wieder laden:

Delphi-Quellcode:
procedure TMainFormUrlausPlaner.FileOpen1Accept(Sender: TObject);
var
  DateiName: TFileName;
  i, y : integer;
  f: TFileStream;
  buff: String;
  len: word;
begin
  DateiName:= FileOpen1.Dialog.FileName;
  f:= TFileStream.Create(DateiName,fmOpenRead);
  try
    if FileExists(DateiName) then
    begin
       for I := 0 to coTage do
       begin
         for y := 0 to coMitarbeiterAnzahl do
         begin
           f.ReadBuffer(len, SizeOf(Word));
           SetLength(buff,len);
           f.ReadBuffer(buff[1], len);
           strGridJahr.cells[i,y]:= buff;
         end;
       end;
    end;
  finally
    f.Free
  end;

end;
Vielleicht kannst Du da was mit anfangen.

Bis bald Chemiker
wer gesund ist hat 1000 wünsche wer krank ist nur einen.
  Mit Zitat antworten Zitat