PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2024 → Fonction cherche , extrait chaine
Fonction cherche , extrait chaine
Iniciado por Quentin Lec., 24,feb. 2020 14:20 - 4 respuestas
Miembro registrado
18 mensajes
Publicado el 24,febrero 2020 - 14:20
Bonjour,

Je ne comprends pas bien le fonctionnement des fonctions cherche et extrait chaîne. J'en ai besoin pour extraire des informations d'un tableau composé de chaîne de caractère.

Mon application :

J'ai un tableau à 1 dimension contenant des lignes de codes, par exemple : X45 Y13
Je souhaite dans un premier temps à l'aide de la fonction cherche déterminer ou non s'il y a des caractères "X" et "Y" présent dans la ligne.

Ensuite extraire le nombre derrière le X et le Y a fin de l'affecter à une autre variable.

Voici mon code :
POUR i= 1 À 3 PAS 1
LigneLue=Cherche(tabTableauEnregistre[j],tcLinéaire,"X""Y")
SI LigneLue=-1 ALORS
SORTIR
FIN
X[i]=ExtraitChaîne(tabTableauEnregistre[j],"X"," ")
Y[i]=ExtraitChaîne(tabTableauEnregistre[j],"Y"," ")

J'ai besoin des variables X1 Y1 X2 Y2 X3 Y3 et j sert à parcourir l'entièreté du tableau.

Si je ne suis pas assez clair, prévenez moi et je répondrais aux questions.

Merci d'avance
Miembro registrado
2.566 mensajes
Popularité : +222 (260 votes)
Publicado el 24,febrero 2020 - 15:02
Bonjour,

En faisant comme ça tout simplement:
sMaChaine est une chaîne = "X1 Y1 Z25 X2 Y2 X3 Y3"

POUR TOUTE chaîne sUneChaine de sMaChaine SEPAREE PAR " "
SI sUneChaine = "" _OU_ PAS Contient(sUneChaine,["X","Y"]) ALORS CONTINUER

Trace(Remplace(sUneChaine,["X","Y"],""))
FIN


--
Cordialement,

Philippe SAINT-BERTIN
Miembro registrado
18 mensajes
Publicado el 24,febrero 2020 - 15:31
Je crois que vous m'avez mal compris.

Prenons le un tableau Tab :
Tab[1] = X50.4 Y67.8 Z45
Tab[2] = X45 Y86
Tab[3] = X89 Y33

Il faut que j'obtienne :
X1=50.4
Y1=67.8
X2=45
Y2=86
X3=89
Y3=33
Miembro registrado
309 mensajes
Popularité : +31 (37 votes)
Publicado el 24,febrero 2020 - 15:57
Bonjour

Par exemple

POUR indi=1 À TAB..Occurrence
{"X"+indi,indVariable}=Val(TAB[indi][[Position(TAB[indi],"X")+1 À]])
{"Y"+indi,indVariable}=Val(TAB[indi][[Position(TAB[indi],"Y")+1 À]])
FIN


Bon dev
Miembro registrado
2.566 mensajes
Popularité : +222 (260 votes)
Publicado el 24,febrero 2020 - 16:09
Je crois que vous m'avez mal compris.

Prenons le un tableau Tab :
Tab[1] = X50.4 Y67.8 Z45
Tab[2] = X45 Y86
Tab[3] = X89 Y33

Il faut que j'obtienne :
X1=50.4
Y1=67.8
X2=45
Y2=86
X3=89
Y3=33


Mon exemple fonctionne parfaitement même dans ce cas, il ne reste plus qu'à inclure mon code dans une boucle pour parcourir le tableau.
MonTableau est tableau de chaînes = ["X50.4 Y67.8 Z45","X45 Y86","X89 Y33"]
sMaChaine est une chaîne

POUR TOUT sMaChaine,nIndice de MonTableau
POUR TOUTE chaîne sUneChaine de sMaChaine SEPAREE PAR " "
SI sUneChaine = "" _OU_ PAS Contient(sUneChaine,["X","Y"]) ALORS CONTINUER

Trace(sUneChaine[[1]] + nIndice + " = " + Remplace(sUneChaine,["X","Y"],""))
FIN
FIN


--
Cordialement,

Philippe SAINT-BERTIN