Soyez le premier à donner votre avis sur cette source.
Snippet vu 5 453 fois - Téléchargée 36 fois
function TokenAt(const S: string; Seperator: Char; At: Integer): string; var J, I: Integer; begin Result := ''; J := 1; I := 0; while (I <= At) and (J <= Length(S)) do begin if (S[J] = Seperator) then Inc(I) else if (I = At) then Result := Result + S[J]; Inc(J); end; Result := Trim(Result); end;
5 févr. 2005 à 01:45
On n'a pas fini de l'explorer, notre site préféré !
Dans son exemple, l'auteur a certainement voulu dire :
s := 'aaa;bb;ccc'
si on lance s1 := TokenAt(s, ';', 2)
alors s1 = 'ccc'
... vérifiez !
La fonction proposée dans le commentaire par Emandhal sera plus correcte en remplaçant :
Result := Copy(Str, 1, pos(Substr, Str) -1);
... par :
Result := Trim(Copy(Str, 1, pos(Substr, Str) -1));
si l'on tient compte des espaces éventuels, comme dans le code d'Amadeus.
4 mars 2003 à 12:13
var
z: Integer;
begin
Str := Str + Substr;
For z := 1 to n do
begin
Str := copy(Str, pos(Substr, Str)+length(Substr), length(Str)-pos(Substr, Str)+Length(Substr));
end;
Result := copy(Str, 1, pos(Substr, Str)-1);
end;
Ce code là aurait-il pas été plus simple? voir mieux vu que le séparateur peut-être aussi bien un Char qu'une String?
3 mars 2003 à 12:01
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.