Паскалевский эквивалент StrTok
Решение 1
function NextToken(P: PChar; Divider: PChar): PChar;
const
next: PChar = nil ;
begin
if P = nil then P := next;
if P <> nil then begin
next := StrPos(P, Divider);
if next <> nil then begin
next^ := #0;
next := @next[StrLen(Divider)];
end;
end;
NextToken := P;
end;
[News Group]
Решение 2
function StrTok(Phrase: PChar; Delimeter: PChar): PChar;
const
tokenPtr: PChar = nil;
workPtr: PChar = nil;
var
delimPtr: PChar;
begin
if (Phrase <> nil) then workPtr := Phrase
else workPtr := tokenPtr;
if workPtr = nil then begin
Result := nil;
Exit;
end;
delimPtr := StrPos(workPtr, Delimeter);
if (delimPtr <> nil) then begin
delimPtr^ := Chr(0);
tokenPtr := delimPtr + 1
end
else
tokenPtr := nil;
Result := workPtr;
end;
[News Group]