Thema: Delphi Record laden

Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
43.171 Beiträge
 
Delphi 12 Athens
 
#18

Re: Record laden

  Alt 26. Mär 2007, 16:40
Stream.Read/.Write sind doch bei dir so definiert?
Delphi-Quellcode:
Read(var Buffer; Count: Longint): Longint;
Write(const Buffer; Count: Longint): Longint;
Also dann sollte es doch funktionieren?

Hast du mal ein Testprogramm zur Verfügung?




Jedenfalls zu Chemiker's Vorschlag:
strLaenge = maximale StringLänge (mehr geht dann nicht rein und soviel wird auch immer gespeichert, selbt wenn weniger drin ist)
Delphi-Quellcode:
// Schreiben
Len := Length(T);
Stream.Write(Len, SizeOf(Len));
for i := 0 to Length(T) - 1 do
  Stream.Write(T[i], SizeOf(TDatum));

// Lesen
Stream.Read(Len, SizeOf(Len));
SetLength(T, Len);
for i := 0 to Length(T) - 1 do
  Stream.Read(T[i], SizeOf(TDatum));
Bei 'nen packed Array (ebenfalls mit ShortStrings) müßte es auch so gehn:
Delphi-Quellcode:
// Schreiben
Len := Length(T);
Stream.Write(Len, SizeOf(Len));
Stream.Write(T[0], SizeOf(TDatum) * Length(T));

// Lesen
Stream.Read(Len, SizeOf(Len));
SetLength(T, Len);
Stream.Read(T[0], SizeOf(TDatum) * Length(T));
Garbage Collector ... Delphianer erzeugen keinen Müll, also brauchen sie auch keinen Müllsucher.
my Delphi wish list : BugReports/FeatureRequests
  Mit Zitat antworten Zitat