Probleme variable

Résolu
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006 - 20 janv. 2006 à 13:58
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006 - 20 janv. 2006 à 17:00
Salut à tous ^^

J'ai commencer le vb depuis quelques jours et j'ai beau eu chercher
toute la matiné, j'ai trouver aucun tuto ou source expliquant
clairement comment regler mon probleme:



J'ai une variable message qui contien: :GaaraS`OqP PRIVMSG #ZanmaTo :ceci est un test

Et j'aurai voulu que ensuite la variable nick contiene GaaraS`OqP, la variable action contiene PRIVMSG etc.



Si quelqu'un pourait m'expliquer comment faire ou me donner l'adresse d'un bon tuto sur le sujet sa serai vraiment simpa ^^'



Merci d'avance :)

7 réponses

gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
20 janv. 2006 à 14:36
Bonjour,





Ton problème est assez simple. C’est juste le fait de trouver un point commun dans la chaîne que tu as et la visiblement pour ton channel c’est les espaces.


Alors moi j’ai fait ma propre routine de découpage, mais tu peu aussi utiliser la fonction « split ».


Cela donnerais dans ton cas.


Private Sub Command1_Click()


' DECLARATION DES VARIABLES.


Dim lngIAs Long


Dim strScanAs String


Dim strTempsAs String


Dim strResult() As String




' DECOUPAGE DE LA VARIABLE.


strTemps = ":GaaraS`OqP PRIVMSG #ZanmaTo :ceci est un test"


If Mid$(strTemps, &H1, &H1) = ":" Then


strTemps = Mid$(strTemps, &H2, Len(strTemps) - &H1)


End If


For lngI = &H2 To Len(strTemps)


strScan = Mid$(strTemps, lngI, &H1)


If strScan = ":" Then


strScan = Mid$(strTemps, lngI + &H1, Len(strTemps) - lngI)


Exit For


End If


Next lngI


Call StringDecoupe(Mid$(strTemps, &H1, lngI - 1), " ", strResult())




' AFFICHAGE DU RESULTAT.


For lngI = &H1 To UBound(strResult())


MsgBox (strResult(lngI))


Next lngI


MsgBox (strScan)




End Sub




Private Sub StringDecoupe(ByVal strLine As String, ByVal strSeparator As String, ByRef strResult() As String)


' DECLARATION DES VARIABLES.


Dim lngIAs Long ' VARIABLE TEMPORAIRE.


Dim lngJAs Long ' VARIABLE TEMPORAIRE.


Dim lngUAs Long ' VARIABLE TEMPORAIRE.


' INITIALISATION DU TABLEAU DE RESULTAT.


ReDim lngResult(&H1 To &H1) As String




' DECOUPE DE LA CHAINE DE CARACTERE.


lngJ = &H1


For lngI = &H1 To Len(strLine) Step &H1


If Mid$(strLine, lngI, Len(strSeparator)) = strSeparator Then


lngU = lngU + &H1


ReDim Preserve strResult(&H1 To lngU) As String


strResult(lngU) = Mid$(strLine, lngJ, (lngI - &H1) - (lngJ - Len(strSeparator)))


lngJ = lngI + Len(strSeparator)


End If


Next lngI


If Right(strLine, Len(strSeparator)) <> strSeparator Then


lngU = lngU + &H1


ReDim Preserve strResult(&H1 To lngU) As String


strResult(lngU) = Mid$(strLine, lngJ, Len(strLine) - (lngJ - Len(strSeparator)))


End If


End Sub


Bon j’ai fait cela vite fait, alors y a surement des optimisations a faire mais cela te permettra de comprendre un peu mieu.


A++

[Gally Home Corp]
3
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
20 janv. 2006 à 14:50
Merci beaucoup de ton aide
0
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
20 janv. 2006 à 14:54
Bonjour

Il est possible aussi d'utiliser un Split :

Dim Tableau
Tableau = Split(MaChaîneDeCaractères," ")
Nick = Tableau(0)
Action = Tableau(1)
...
0
acecel Messages postés 140 Date d'inscription jeudi 6 mai 2004 Statut Membre Dernière intervention 14 octobre 2006
20 janv. 2006 à 15:00
Par contre tu doit vérifier le UBound de ton tableau avant, car si il manque des infos dans ton message, tu auras des erreurs.

Il faudrait faire plutôt :

Dim Tableau
Dim I as Integer

While I < UBound(Tableau) +1 If I 0 then Nick Tableau(1) ElseIf I 1 then Action Tableau(2)
ElseIf I = 2 Then ...
End If
Wend
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
gallyhc Messages postés 386 Date d'inscription samedi 4 octobre 2008 Statut Membre Dernière intervention 19 février 2018 2
20 janv. 2006 à 16:44
Re,

J'ai bien précisé que on pouvait faire aussi par "split" et si je le fait pas pour ma part c'est justement pour la gestion des tableaux.

Bonne continuation,
[Gally Home Corp]
0
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
20 janv. 2006 à 16:58
Euh chaque fois que j'esseye d'utiliser la fonction split avec des espaces comme separateur, sa bug ^^'
0
nightmar Messages postés 108 Date d'inscription mercredi 10 mars 2004 Statut Membre Dernière intervention 18 novembre 2006
20 janv. 2006 à 17:00
Ah non c'est bon j'ai mi mon chr(32) en variable, puis je l'ai mi dans la fonction
0
Rejoignez-nous