Wenn bei einem Widestring irgendwo ein Doppel-NullByte eingefügt wird, wie kann ich dann Delphi verklickern, dass es den Längen-wert korrigieren sollte?
z.B.
alter Inhalt : "TestString"
neuer Inhalt : "result'#0'ing"
length(x) liefert noch immer 10.
setlength(x, StrLen(PChar(string(x)))) kann's ja net sein, das muss schöner gehen.
Danke!
P.S.: Das gleiche Problem mit "normalen" strings demonstriert:
Delphi-Quellcode:
procedure TForm1.Button1Click(Sender: TObject);
var s : string;
begin
s:='Hallo'+#0+Caption;
Memo1.Lines.Add('length = '+IntToStr(length(s)));
Memo1.Lines.Add(s);
end;
Wie "korrigiere" ich s, so dass Length hier 5 liefert?
Setlength(pos(#0... ist ja auch so eine miese Lösung, da gibt's doch sicher was "richtiges"...
Danke!