vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022
-
21 nov. 2006 à 15:12
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022
-
24 nov. 2006 à 09:36
Slt, bon alors voilà ma super question... je suis au boulot là j'ai
plus le code dans la tete, mais dans un champ texte je sais faire
ensorte de "sortir" dans label une portion de phrase.... genre si dans
t1.text on a "je suis super fatigué", et qu'avec uen boucle for on veut
"sortir" tout ce qui se trovue après "je suis" (ss condition que "je
suis" soit en début de phrase), dans le label de sortie je peux faire
en sorte de mettre "super fatigué"... euh, j'espère que je suis clair
là .
Bref voilà, ce que je n'arrive pas à faire c'est de limiter la sortie, à 1 seul mot. Soit en l'occurence "super". ("fatigué" ou tout truc après le mot "super", on s'en fiche)
Donc si pour t1.text = "je suis super
fatigué", aulieu d'avoir en sorti label "super fatigué", je voudrais
avoir seulement "super"... je pensais me repérer à l'espace suivant,
mais si qq'un à une autre soluce...? et aussi (je sais je suis bizarre
parfois) comment faire si :
t1.text = "bon alors là je suis super fatigué"
Capter que "je suis" n'est pas en début de phrase et toujorus prendre
ça comme repère, afin de sortir, enfin et toujours, 1 seul mot, en
l'occurence, "super"...
ps: nan je ne bois pas d'alcool, c'est juste une question...
Merci d'avance pour vos conseils voir soluce miracle
Molenn
Messages postés797Date d'inscriptionmardi 7 juin 2005StatutMembreDernière intervention23 février 20117 21 nov. 2006 à 15:49
Rien de bien compliqué :
1ère partie : Repérer "je suis" et supprimer tout ce qu'il y a avant
Ton repère, c'est "je suis".
Pour trouver sa position dans ta phrase, il te suffit d'utiliser la fonction InStr.
Temp = InStr(1, t1.text, "je suis")
Ca te sort le position dans la phrase du premier caractère (le j donc), du premier "je suis" rencontré.
Dans ta phrase "bon alors là je suis super fatigué", la fonction va donc te donner 14. Le "j" de "je suis" est le 14ème caractère.
Tu veux donc supprimer tout ce qu'il y a avant ce caractère, ou tu veux prendre tout ce qui vient après (ce qui revient au même) : Ton repère "je suis" fait 7 caractères
On récupère donc Tout ce qui "est à droite" de ton repère, repère inclus
Temp = Right(t1.text, Len(t1.text) - InStr(1, t1.text, "je suis") - 7)
La variable Temp contient donc à présent "super fatigué" (longueur de la phrase, 34 caractères, -14 qui est la position du premier caractère de ton repère, -7, qui est la longueur de ton repère.), c'est à dire, tout ce qui est à droite du 21ème caractère.
2ème partie : Sortir le premier mot suivant le remère
Effectivement, il te suffit de chercher le premier espace dans le texte d'où a été enlevé les 21 premiers caractères.
InStr(1, Temp, " ")
La fonction va te retourner 6, en effet, l'espace est le 6ème caractère dans "super fatigué".
Cette fois, on prend tout ce qui est à gauche de cet espace :
Mot = Left(Temp, InStr(1, Temp, " ") - 1)
Et voilà, ta variable Mot contient le mot super"
Alors, si on condense tout ça :
Temp = Right(t1.text, Len(t1.text) - InStr(1, t1.text, "je suis") - 7)
Mot = Left(Temp, InStr(1, Temp, " ") - 1)
Encore plus condensé même, mais moins lisible :
Mot = Left(Right(t1.text, Len(t1.text) - InStr(1, t1.text, "je suis") - 7)
, InStr(1, Right(t1.text, Len(t1.text) - InStr(1, t1.text, "je suis") - 7)
, " ") - 1)
malhivertman1
Messages postés489Date d'inscriptionmardi 16 novembre 2004StatutMembreDernière intervention22 novembre 20071 21 nov. 2006 à 15:34
un truc genre
t1.Text = "bon alors là je suis super fatigué"
t1.Text = Mid( t1.Text, InStr( t1.Text, "je suis ") + Len("je suis "))
t1.Text = Mid( t1.Text, 1, InStr( t1.Text, " "))
devrait marcher, il y a surement mieu et je ne sais pas si c'est ce que tu veux mais enfin voilà..
vegetalain
Messages postés747Date d'inscriptionmardi 25 mars 2003StatutMembreDernière intervention11 août 2022 24 nov. 2006 à 09:36
merci pour toutes ces infos, ça marche du tonnerre et franchement, le résultat est bluffant (pour moi en tout cas,
hihihi)... hm si j'osais ; je demanderais même aussi l'inverse, genre
le mot d'avant... "il parait que bill est crevé" : dans le code on met
est crevé, et on ressort "bill" ... encore merciiiii !!