Einzelnen Beitrag anzeigen

FredlFesl

Registriert seit: 19. Apr 2011
293 Beiträge
 
Delphi 2009 Enterprise
 
#17

AW: Problem mit procedure Split()

  Alt 28. Apr 2011, 17:53
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.
  Mit Zitat antworten Zitat