PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV Mobile (versiones precedentes) → Extraire une chaine entre deux mots différents
Extraire une chaine entre deux mots différents
Iniciado por Fred2355, 01,oct. 2017 23:11 - 3 respuestas
Miembro registrado
231 mensajes
Popularité : +7 (7 votes)
Publicado el 01,octubre 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
Publicado el 02,octubre 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
Miembro registrado
2.571 mensajes
Popularité : +222 (260 votes)
Publicado el 03,octubre 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
Miembro registrado
231 mensajes
Popularité : +7 (7 votes)
Publicado el 04,octubre 2017 - 18:43
Merci pour l'info!
:merci:
Je teste !!