Einzelnen Beitrag anzeigen

Benutzerbild von dahead
dahead

Registriert seit: 16. Mai 2005
620 Beiträge
 
#1

Verschieden Datentypen in Stream speichern/laden

  Alt 24. Jun 2005, 14:44
Hallo,

ich habe gerade folgendes Problem: ich möchte verschieden Werte aus u. g. Record in einen Stream speichern und dann wieder daraus laden.

Code:
type
  TALNode = record
   ID: Integer;
   Active: Boolean;
   AlarmName: String;
   ImageIndex: Integer;
   AlarmDate,
   AlarmTime: TDateTime;
  end;
Das speichern der Integer, Boolean und String Werte ist kein Problem. Die TDateTime Werte hab ich beim speichern probehalber in Strings umgewandelt (DateToStr, TimeToStr). Ist meiner Meinung nach leider nicht sehr elegant.

Das eigentliche Problem taucht nun beim Laden des Streams auf. Wie rück-konvertiere ich die TDateTime Werte?

Gespeichert wird so:

Code:
Len := Length(DateToStr(NodeArray[I].AlarmDate));
Stream.Write(Len, SizeOf(Len));
Stream.Write(PChar(DateToStr(NodeArray[I].AlarmDate))^, Len);
Geladen so (geht natürlich nicht):

Code:
Stream.Read(Len, SizeOf(Len));
SetLength(NodeArray[I].AlarmDate, Len);
Stream.Read(PChar(DateToStr(NodeArray[I].AlarmDate))^, Len);
Gibt es da eine bessere Möglichkeit? (Achja, ich möchte keine dpCollection usw. verwenden sondern Streams.)

Vielen Dank im Voraus!
  Mit Zitat antworten Zitat