Einzelnen Beitrag anzeigen

matz

Registriert seit: 9. Sep 2003
31 Beiträge
 
#1

Abspeichern von Objekten ??

  Alt 17. Okt 2005, 19:16
Ich beschäftige mich gerade mit dem abspeichern von Daten

die Daten sind in einer StringList als Opjekte gespeichert
Delphi-Quellcode:
  OHeader = class(TObject)
  public
   HDR_TYP : String[20];
   No : String;
   Datum : tDateTime;
   Path : String;
   Edi : String;
   PDF : String;
   Status : String;
   Nachricht_Typ : String;
   Nachricht_Name : String;
   Bezugsnr : String;
   Benutzer_ID : String;
   RegistrierNr : TStringList;
   RegistrierNr1 : String;
   EdifactNr : String;
   INH_NR : String;
  end;
der Versuch die Daten zu speichern und anschließend wieder zu laden sah recht vielversprechend aus
Delphi-Quellcode:

// Daten speichern
if not FileExists(Filename) then TmpStream := TFileStream.Create('C:\test.dat', fmCreate)
    else TmpStream := TFileStream.Create(Filename, fmOpenReadWrite);

Len := SL_Header.Count;
TmpStream.Write(len, SizeOf(len)); // abspeichern wie viele Datensätze

for I := 0 to SL_Header.Count - 1 do
begin
 Header := SL_Header.Objects[i] as oHeader;
 TmpStream.Write(Header, SizeOf(oHeader));
end;

TmpStream.Free;

// gespeicherte Daten gleich wieder einlesen
TmpStream := TFileStream.Create('c:\test.dat', fmOpenRead);

tmpStream.Read(len, SizeOf(len));
sl_Header.Clear;


for I := 0 to len - 1 do Begin
  Header := oHeader.Create;
  header.Path := '';
  tmpStream.Read(Header, SizeOf(oHeader));
  sl_header.AddObject(Header.No,Header);
  end;
tmpstream.free;
leider geht das beim Start des Programmes aber nicht mehr

Delphi-Quellcode:
TmpStream := TFileStream.Create('c:\test.dat', fmOpenRead);
tmpStream.Read(len, SizeOf(len));
for I := 0 to Len-1 do Begin
  Header := oHeader.Create;
  tmpStream.Read(Header, SizeOf(oHeader));
  SL_Header.AddObject(Header.No,Header);
end;
tmpstream.free;
nun meine Frage kann das überhaupt funktionieren ?

schon mal betsen Dank für die Hilfe
gruß Matz
  Mit Zitat antworten Zitat