Einzelnen Beitrag anzeigen

hanspeter

Registriert seit: 26. Jul 2003
Ort: Leipzig
1.350 Beiträge
 
Delphi XE2 Professional
 
#1

Unicode und Filestream

  Alt 1. Jul 2011, 15:03
Delphi-Version: XE
Ich schreibe Daten in einen Stream.
Delphi-Quellcode:
dat : AnsiString;
begin
  dat := 'Test' + #13#10;
  stream.WriteBuffer(dat[1],Length(dat));
  str.Position := str.Size;
Das funktinoniert problemlos.

Verwende ich jedoch einen Unicodestring

Delphi-Quellcode:
dat : String;
begin
  dat := 'Test' + Char(13) + Char(10);
  stream.WriteBuffer(dat[1],Length(dat));
  str.Position := str.Size;
Dann sind im Stream die Steuerzeichen verschwunden.

Schreibe ich jedoch in den Stream mit stream.WriteBuffer(dat[1],Length(dat) + 2); dann funktioniert es.

Analog
dat := Char(13) + Char(10) geschrieben geht nicht.
Nachfolgender Konstruct funktioniert dann wieder:
Delphi-Quellcode:
b : Array[1..4] of AnsiChar;
begin
 b[1] := #13;
  b[2] := #0;
  b[3] := #10;
  b[4] := #0;
  str.WriteBuffer(b[1],4);

length scheint #13#10 nicht als Zeichen mitzuzählen.
Oder hat wer eine Idee, was ich falsch mache?

Gruß
Peter
  Mit Zitat antworten Zitat