Mettre un mot d'une phrase ds une variable

Signaler
Messages postés
96
Date d'inscription
mardi 3 juillet 2001
Statut
Membre
Dernière intervention
2 novembre 2006
-
Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002
-
c un peu plus compliqué que ça ne le paraît :

voici la phrase :

:<nick>!~<host> JOIN :<channel>

jémerai mettre le JOIN ds la variable chaine en sachant que <nick> <host> et <channel> sont déjà des variables qui peuvent varier de nb de caractères dc on ne peut utiliser lé fct mid right et left.

Mci de votre aide

PS: On trouve l'équivalent en irc avec $x ou x désigne le xième mot de la phrase.

5 réponses

Messages postés
796
Date d'inscription
jeudi 17 mai 2001
Statut
Membre
Dernière intervention
5 mai 2009
7
Salut,

voici un bout de code que peut te servir.
Celui ne peut fonctionner correctement que si les caractères > et < sont présents et ont tjs le même ordre.

Dim StrToSearch As String
Dim StrLen As Long
Dim I As Long
Dim Counter As Long
Dim Offset1 As Long
Dim Offset2 As Long
Dim Str1 As String
Dim Str2 As String
Dim NewStr As String

StrToSearch = ":<nick>!~<host> JOIN :<channel>"
StrLen = Len(StrToSearch)

For I = 1 To StrLen If Mid$(StrToSearch, I, 1) ">" Then Counter Counter + 1 If Counter 2 Then Offset1 I: Exit For
Next I

For I = StrLen To 1 Step -1 If Mid$(StrToSearch, I, 1) ":" Then Offset2 I: Exit For
Next I

Str1 = Left$(StrToSearch, Offset1)
Str2 = Mid$(StrToSearch, Offset2)

NewStr = Str1 & " Nouveau terme " & Str2
MsgBox NewStr

Y'a certainement plus simple... J'ai fait cela en 4e vitesse.

Bonne chance.

Tchao

NéoB
0
Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002

Si tu n'as pas besoin de réutiliser une fonction qui cherche la position d'un mot dans une phrase voilà un truc simpliste

const chaine = ":TeKiT!~blablabla JOIN :Le prétoire de dieu"
Dim Resultat
Resultat=Mid(chaine,InStr(chaine,"JOIN :")+6)

---------------
Un optimiste, c'est un homme qui plante deux glands ......... et qui s'achète un hamac.
0
Messages postés
96
Date d'inscription
mardi 3 juillet 2001
Statut
Membre
Dernière intervention
2 novembre 2006

ce n'est q'un bout du pb. jmerai que une fois qu'il é repéré le "JOIN", qu'il enregistre le nick qu'il y a au début ds la variable pseudo.

la phrase que je reçois peut très bien avoir un pseudo comme kidpigeyre (long) ou alors comme cati(court), <nick> est une variable que je ne peut controler pour connaitre la taille car je reçois l'ensemble de la phrase et pas variable par variable.

mci.
0
Messages postés
73
Date d'inscription
mardi 23 juillet 2002
Statut
Membre
Dernière intervention
10 juillet 2003

je suis pas sur d'avoir tout compris mais essaie ça :

Const chaine = ":Prout!~caca JOIN :chaude pisse"
Dim Resultat
Resultat = Mid(chaine, InStr(1, chaine, ":") + 1, InStr(InStr(1, chaine, ":"), chaine, "!~") - 2)
0
Messages postés
39
Date d'inscription
jeudi 26 octobre 2000
Statut
Membre
Dernière intervention
9 août 2002

Ou pour faire plus rapide (utilisation du Left)
tmp=Instr(chaine,"!")
Resultat=Left(chaine,tmp)
Resultat=Right(Resultat,len(Resultat)-1)

La derniere ligne permettant de dégager les : mis devant le nick .... par contre un nick ne peut contenir de ! ou de JOIN:

!!!!!!!!!!!!!!!
---
Un optimiste, c'est un homme qui plante deux glands ......... et qui s'achète un hamac.
0