Forum: Object-Pascal / Delphi-Language
by himitsu,
27. Nov 2011
Das mit der #0 ist kein Bug, sondern Absicht (ein Feature), wegen Kompatibilität zum PChar.
Ein Delphi-String abeitet über eine Längenangabe und nicht über eine Endemarkierung.
Der einzige "Bug" ist, daß man nach dem Laden, über Add in eine TStringList Strings mit #0 einfügen kann.
Andere Stringlisten, wie z.B. die vom Memo (Lines) arbeiten dagegen anders und beachten indirekt die #0.
Forum: Object-Pascal / Delphi-Language
by himitsu,
27. Nov 2011
http://www.delphipraxis.net/130566-tmemo-lines-loadfromfile-2.html#post1137526
Theoretisch sollte sie (zumindestens die aktuelle TStringList) auch nur ab der aktuellen Position einlesen, aber ich bin mir nicht sicher, ob das schon immer der Fall war ... aber bis zur #0 lesen die alle nur.
Forum: Object-Pascal / Delphi-Language
by himitsu,
27. Nov 2011
Die StringListe als Erstes in den Stream und dann noch eine #0 (besser ein Word mit dem Wert 0) hinten an den Stream ... danach kann man ohne Probleme andere Daten dranhängen.
Hat man den Gesamt-Stream in einem TMemoryStream drin, dann kann der Text der StringList sonstwo stehen, onlange auch da eine #0 hinten dran hängt ... einlesen dabei z.B. über TStringList.SetText.
Ich hatte mir...