Extraire mots avec chaine separateur

cs_yong Messages postés 3 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 7 décembre 2004 - 6 déc. 2004 à 11:19
cs_yong Messages postés 3 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 7 décembre 2004 - 7 déc. 2004 à 13:27
Salut,
Est-il possible d'extraire les champs d'une chaine avec comme caractere de separation un espace ou plusieurs espace qui se suivent?
ex: merci de votre aide.

J'ai ecrit une fonction pour extraire les champs mais ca prend comme caractere de separation un seul caractere espace et pas plusieurs espace qui se suivent.
Merci,

5 réponses

jinh68 Messages postés 215 Date d'inscription mardi 29 juillet 2003 Statut Membre Dernière intervention 1 septembre 2006
6 déc. 2004 à 13:14
Tu peux utiliser les TStringList qui permettent facilement cela.

Je n'ai pas Delphi sous les yeux , donc je peux pas te dire le nom de la propriété tout de suite...

j!nH
0
cs_yong Messages postés 3 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 7 décembre 2004
6 déc. 2004 à 13:48
oups mon exemple n'a pas marché
je voulais mettre un exemple dans le genre:

merci,de,,,,,,,votre,,,aide

avec ',' comme caractere de separation

merci jinh pour ta reponse je vais aller voir comment fonctionne TStringList
0
sovitec Messages postés 47 Date d'inscription mardi 18 mai 2004 Statut Membre Dernière intervention 24 juillet 2006
6 déc. 2004 à 15:50
Si tu n'avais qu'un seul caractère séparateur un code comme
MonStringList.Delimiter := ',';
MonStringList.DelimitedText := 'merci,de,,,,,,,votre,,,aide';

aurait suffit.

Comme tu veux des choses plus compliquées tu peux passer par une bibliothèque d'expressions rationnelles comme .html http://regexpstudio.com/FR/TRegExpr/Help/About.html
0
jinh68 Messages postés 215 Date d'inscription mardi 29 juillet 2003 Statut Membre Dernière intervention 1 septembre 2006
7 déc. 2004 à 13:03
Je vais tenter de faire une fonction de mon coté..si ca t'interesse je peux te tenir au courant...
j!nH
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_yong Messages postés 3 Date d'inscription samedi 10 juillet 2004 Statut Membre Dernière intervention 7 décembre 2004
7 déc. 2004 à 13:27
salut,
merci pour votre aide a tous.
J'ai réussi à faire une petite fonction qui fait ce que je veux, le code est pas tres propre mais bon. Voila ce que j'ai fait:

begin
champ:='';
j:=1;
fin:=length(ligne);
while (j<fin) do
begin
sp:=Pos(' ',ligne);
if ( sp = 0 ) then sp:=3;
champ:=champ+copy(ligne,1,sp);
delete(ligne,1,sp);
ligne:=trim(ligne);
j:=j+sp;
if (ligne ='') then j:=fin;
end;
Result:=champ;
end;

Ca ne marche qu' avec des ensembles d'espace.
0
Rejoignez-nous