Einzelnen Beitrag anzeigen

Benutzerbild von SirThornberry
SirThornberry
(Moderator)

Registriert seit: 23. Sep 2003
Ort: Bockwen
12.235 Beiträge
 
Delphi 2006 Professional
 
#1

WideString in Stream speichern - Wie?

  Alt 7. Sep 2005, 11:27
Ich bin gerade dabei das ich einen WideString in einen Stream speichern will. Bei einem normalen String würde ich das so machen:
Delphi-Quellcode:
var LSize: Integer;
begin
  LSize := Length(NormalerString); //Länge des Strings ermitteln
  Stream.Write(LSize, SizeOf(LSize)); //Länge des Strings abspeichern (fürs Laden benötigt)
  Stream.Write(NormalerString[1], LSize); //String in Stream schreiben
bei einem WideString würde ich das jetzt so machen
Delphi-Quellcode:
var LSize: Integer;
begin
  LSize := Length(TheWideString) * 2; //Länge des Strings ermitteln
  Stream.Write(LSize, SizeOf(LSize)); //Länge des Strings abspeichern (fürs Laden benötigt)
  Stream.Write(TheWideString[1], LSize); //String in Stream schreiben
Mich stört jetzt bei dieser Variante das "*2" weil es ja irgendwann mal passieren kann das unter windows ein Zeischen eines WideStrings dann 4 Byte lang ist. Wie würde ihr das machen um die 2 nicht fest rein zu schreiben?
Ich hab schon überlegt zu schreiben
LSize := Length(TheWideString) * SizeOf(WideChar); Wie würdet ihr das machen?
Jens
Mit Source ist es wie mit Kunst - Hauptsache der Künstler versteht's
  Mit Zitat antworten Zitat