Oh, ich hatte die falsche Stelle erwischt und dadurch kam auch mein Denkfehler.
Es ist tatsächlich egal, ob <>#0 oder >#0, aber es fehlt etwas.
Delphi-Quellcode:
while P^ <> #0 do
begin
// add string to list
Strings.Add(P);
// move pointer to start of next string if any
Inc(P, SysUtils.StrLen(P) + 1); //hier kracht es bei Durchlauf >= 2.
end;
Was ich eigentlich meinte, wäre es könnte entweder heissen:
IF P^<> #0 THEN Inc(P, SysUtils.StrLen(P) + 1);
oder nach "end;" müsste die in dem Fall zuvlel addierte 1 wieder abgezogen werden.
Irgendwie muss ich bei sowas an StringGrids denken, die man mit Daten füttert und immer 1 addiert, am Schluss dann aber eine leere Zeile zuviel vorhanden ist, wenn die nicht wieder abgezogen wird.