Hallo.
Wo ist da der Eingabe-
Unicode-String? CopyMemory verwende ich ja bereits. Im Beitrag #25 (
http://www.delphipraxis.net/internal...=767710#767710 ) habe ich ja das ganze Beispiel beigelegt, das man direkt Testen kann.
Ich lese eine Unicodedatei ein, wandle den x Byte WideString in einen x Byte String und speichere anschließend den String. Speichern und Laden funktioniert, aber die Dateien sind unterschiedlich!
Die entscheidende Zeile ist ja:
Delphi-Quellcode:
PWC := PWideChar(UnicodeStr);
CopyMemory(@ByteArray[0], @PWC, Length(UnicodeStr) * sizeof(WideChar));
Wobei ich auch schreiben könnte (was aber Probleme bei UnicodeStr = '' machen kann)
CopyMemory(@ByteArray[0], @UnicodeStr[1], Length(UnicodeStr) * sizeof(WideChar));
Ich sehe in dieser Funktion: 20 Bytes von Position @UnicodeStr zu Position @ByteArray kopieren. Das muss doch funktionieren. Ich verstehe gar nicht, wieso etwas völlig verschiedenes rauskommt. Er muss den Inhalt vom WideString in den String schreiben. Auf die #0 in der Mitte kommt es hier wie gesagt gar nicht an. Das Problem ist hier was anderes.
Gruß
blackdrake