Also wenn ich einen PChar habe, und der zeigt auf Strings, die mit #0 voneinander getrennt sind, und zusätzlich habe ich noch die Gesamtlänge des Speicherbereiches, dann liegt es doch nahe, einfach mal durchzulaufen und ein ARRAY OF PCHAR oder eine TList zu erstellen, wenn man auf ein #0 stößt
Delphi-Quellcode:
Function SplitByNullChar (P : PChar; N : Integer) : TList;
Var
I : Integer;
C : Char;
Begin
Result := TList.Create;
Result.Add(P);
For I :=1 to N-1 Do begin
C := P^;
Inc(P);
If C=#0 then Result.Add(P);
End;
End;
Voraussetzung: Hinter dem letzten String ist ein #0.
Danach stehen in der TList lauter PChars, die jeweils auf das erste Zeichen des Tokens zeigen. Terminiert wird dieser String ja durch ein #0, nämlich den nächsten Delimiter.
Das Bild hängt schief.