RENVOIE UNE PARTIE D'UNE CHAINE PAR RAPPORT À UN SÉPARATEUR
cs_Amadeus
Messages postés123Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention15 mars 2004
-
3 mars 2003 à 12:01
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 2021
-
5 févr. 2005 à 01:45
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
japee
Messages postés1727Date d'inscriptionvendredi 27 décembre 2002StatutModérateurDernière intervention 6 novembre 20218 5 févr. 2005 à 01:45
Redirigé ici par ni69 qui répondait à une question posée sur le forum. ;)
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.
Emandhal
Messages postés194Date d'inscriptiondimanche 2 mars 2003StatutMembreDernière intervention10 octobre 20063 4 mars 2003 à 12:13
Function SubString(Str: String ; Substr: String ; n: Integer): String;
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?
cs_Amadeus
Messages postés123Date d'inscriptionmercredi 2 janvier 2002StatutMembreDernière intervention15 mars 20042 3 mars 2003 à 12:01
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