Probleme de Boucle avec VB.net

Bon, j’ai un probleme, je bosse sur un bot IRC en ce moment, c’est du VB.net. Je m’explique, la fonction MassOp est une fonction qui permet de mettre Op tous les utilisateurs du channel d’irc. Pour cela, j’envoie une requete au server pour qu’il me donne la liste des nicks de chacun des utilisateurs, mais le probleme, c’est que pour que sa marche il faut attendre que le server reponde, du coup, j’ai eu une idée, faire une boucle, qui attende qu’un des mots que le serveur renvoit a chaque fois (le mot “NAMES”).

Mais voila mon probleme, traduit en langue normale, ma boucle donnerait :

“Ne fais rien tant que la position du mot “NAMES” vaut zero dans ce que tu reçois”

Public Sub MassOp()
Dim monTabAMassOP() As String Dim ListeNickChan IRCSock.SendData("NAMES " & ChannelName & Chr(10)) Do Until InStr(Receive, "NAMES") <> 0 'On fait rien Loop ListeNickChan = Replace(Receive, "@", "") 'On enleve les @ et + de la liste des nicks de façon a ce que sa soit propre, ListeNickChan = Replace(Receive, "+", "") ' et qu'il n'y ai pas d'erreur sur les nicks MsgBox(ListeNickChan) monTabAMassOP = Split(Receive, " ") End Sub
Mais sa marche pas, le programme se fout en boucle, et n'en sort pas meme si ma condition est vraie.

Par contre, si a la place de " 'On fait rien", je met une MsgBox, la, le programme sort de ma boucle et il n’y aucun probleme.
En gros mon probleme, c’est comment faire pour que ma boucle marche, sans avoir a mettre de MsgBox.

Merci de votre aide par avance

Ce message a été édité par Le_K le 23/12/2003

T’as essayé de mettre un DoEvents() à la place de ton message box dans ta boucle ?

extrait de la doc:

[quote]Application.DoEvents, méthode  [Visual Basic]
Traite tous les messages Windows présents dans la file d’attente de messages.
[…]
Public Shared Sub DoEvents()
[…]
Traite tous les messages Windows présents dans la file d’attente de messages.
[…]
Si vous appelez DoEvents dans votre code, votre application peut alors gérer les autres événements. Par exemple, si vous disposez d’un formulaire qui ajoute des données à ListBox et DoEvents à votre code, alors votre formulaire se repeint lorsqu’une autre fenêtre est glissée par-dessus. Si vous enlevez DoEvents de votre code, votre formulaire ne se repeindra alors pas tant que le gestionnaire d’événements Click du bouton n’aura pas terminé son exécution.
Cette méthode est généralement utilisée dans une boucle pour traiter les messages.[/quote]Ce message a été édité par phili_b le 23/12/2003

Merci, philli, g fini par trouver une solution, en fait j’ai reprogrammé tout le Core IRC de mon programme, avec cette histoire jy ai gagné. Puiske je vais pourvoir gerer d’autres fonctions.

Mais c’est vrai que cette propriete est super interrescante, j’en prend bonne note.

Merci a toi  ! 

Ce message a été édité par Le_K le 23/12/2003