PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile (précédentes versions) → Extraire une chaine entre deux mots différents
Extraire une chaine entre deux mots différents
Débuté par Fred2355, 01 oct. 2017 23:11 - 3 réponses
Membre enregistré
231 messages
Popularité : +7 (7 votes)
Posté le 01 octobre 2017 - 23:11
Bonsoir,

J'ai une chaine de caractères du style:
"nom:marcheproduguidon,prénom:eugene,age:38"

mais cette chaine peut avoir des variantes telle que le nombre de caractères entre nom: et la virgule qui suit le nom peut varier en fonction de la longueur du nom, idem pour le prénom.

Comment pourrait je dire que je ne veux que le nom et le prénom.?

le hic est que en fonction d'autre paramètre que je métrise pas, nom et prénom peuvent être inversé:
"prénom:eugene,nom:marcheproduguidon,status:marié,age:38"

Avez vous une idée?

Merci
Posté le 02 octobre 2017 - 10:15
Fred2355 a pensé très fort :
Bonsoir,

J'ai une chaine de caractères du style:
"nom:marcheproduguidon,prénom:eugene,age:38"

mais cette chaine peut avoir des variantes telle que le nombre de caractères
entre nom: et la virgule qui suit le nom peut varier en fonction de la
longueur du nom, idem pour le prénom.

Comment pourrait je dire que je ne veux que le nom et le prénom.?

le hic est que en fonction d'autre paramètre que je métrise pas, nom et
prénom peuvent être inversé:
"prénom:eugene,nom:marcheproduguidon,status:marié,age:38"

Avez vous une idée?

Merci


si l'ordre de la chaine n'est pas fixe il faudra boucler avec
extraitchaine avec l'option rangpremier/rangsuivant

szTmp est chaine = ExtraitChaine(MaChaineComplète,rangPremier,",")
TANTQUE szTmp <> EOT
SI ExtraitChaine(szTmp,1,":") = "nom" alors
Trace(ExtraitChaine(szTmp,2,":")
SI ExtraitChaine(szTmp,1,":") = "prenom" alors
Trace(ExtraitChaine(szTmp,2,":")
szTmp = ExtraitChaîne(MaChaineComplète, rangSuivant,",")
FIN

--
Cordialement JeAn-PhI
Membre enregistré
2 572 messages
Popularité : +222 (260 votes)
Posté le 03 octobre 2017 - 06:53
Bonjour,

plus simplement comme cela:
sToto est une chaîne = "nom:marcheproduguidon,prénom:eugene,age:38"

POUR TOUTE chaîne sTutu de sToto SEPAREE PAR ","
SI ExtraitChaîne(sTutu,1,":") ~= "nom" ALORS Trace(sTutu)
SI ExtraitChaîne(sTutu,1,":") ~= "prenom" ALORS Trace(sTutu)
FIN


--
Cordialement,

Philippe SAINT-BERTIN
Géode Informatique
Membre enregistré
231 messages
Popularité : +7 (7 votes)
Posté le 04 octobre 2017 - 18:43
Merci pour l'info!
:merci:
Je teste !!