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!