Luckie,
mit long string meine ich wirklich AnsiString. Beim längen-gezählten AnsiString wird zwar das #0 Zeichen anstandslos mitgezählt, kopiert, etc., aber sobald eine der vielen internen automatischen Wandlungen nach PChar statt findet - AUTSCH. Schau mal hier:
Delphi-Quellcode:
var
s: AnsiString;
begin
s := 'Bisweilen geh ich im Walde so für mich hin, nach schmackhaften Pilzen steht mir der Sinn';
s[43] := #0;
ShowMessage(Format('Der String "%s" hat die Länge %d', [s, Length(s)]));
end;
Deswegen sollte man solange keine null chars in einer string Variablen mitführen, bis man genau weiß was man da tut.
Freundliche Grüße vom marabu