Hallo.
Ich möchte einen String im WideString-Format (bei
ANSI 00h zwischen jedem Zeichen) in einen TFileStream speichern. Vorher wandle ich ein String in WideString um.
Delphi-Quellcode:
public
tempstream: TStream;
procedure Write(const Value; Size: Integer);
begin
mainform.tempstream.WriteBuffer(Value, Size);
end;
procedure WriteRaw(const Value: Binary);
begin
Write(Value[1], Length(Value));
end;
var
ws: widestring;
begin
ws := mainform.edt_vle1.text;
WriteRaw(ws+#00#00);
end;
Das Ergebnis, das man im Hexeditor betrachten kann, ist jedoch:
abcde[NULL][NULL]
Wieso hat die String -> WideString konvertierung nicht funktioniert?
Da mein Projekt OpenSource ist, möchte ich keine fremden, kostenpflichtigen Komponenten verwenden. Der Benutzer soll mit frei erhältlichen Komponenten oder den Borland-VCLs das Projekt öffnen können. Daher muss ich bis 2008 warten, bis Borland vollen
Unicode-Support für die VCLs bietet. Solange wandle ich einfach die Strings in WideStrings um. Das Dateiformat will ich aber bereits
Unicode-Ready machen.
Gruß
blackdrake