Un truc qui resiste à "On Error Resume Next" ? O_O [Résolu]

Signaler
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010
-
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010
-
Salut tous le monde.

J'ai ce bout de code là:

<hr size= "2" width="100%" />Sub ENVOYER_VIA_TAG( LE_TAG , DATA)

On Error GoToSuivant

    For i = 1 To Winsock.UBound
   
        If  Winsock(i).TAG = LE_TAG Then Winsock(i).SendData DATA
       
Suivant:
    Next i

End Sub
<hr size ="2" width= "100%" />

J'explique mon code:

C'est un serveur (TCP Winsock) que je monte avec vb6. Tous simplement quand un client se connecte au Serveur, le programme lui créer un socket, et lui donne un Nom qu'il enregistre dans le .TAG du Socket.

Donc, a chaque fois que le serveur veux envoyer quelque chose à un Socket, il lui suffit le nom. Exemple:

ENVOYER_VIA_TAG    "Paul"  ,     "Salut Paul ça va ?"

Il cherche dans le .TAG de tous les socket, quand il trouve un Socket avec le Winsock(x).Tag = "Paul". Il vois le blabla ..

Gros bref. Mais là le probléme: des fois par exemple il ya :

Winsock(0).tag = "Paul"
Winsock(1).tag = "Aller_Les_Bleu"
Winsock(2).tag = Riens car le socket a été Unload quand l'ancienne personne a quitter.
Winsock(3).tag = "Pokemon"

donc là, Erreur 340 (L'élément du groupe de contrôles n'existe pas) quand il trouve riens dans le Winsock(2). ça m'enerve et le pire c'est que même si je tape On Error resume next, et même On Error Goto Suivant, ça resiste toujours 

Quelqu'un a une idée s'il vous plait ? (Sans oublier que je veux toujours garder le Unload Winsock(x) quand une personne quitte). Merci . Et désolé pour ce long récit. lol

Technologie Reacen²

8 réponses

Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
salut,

"winsock" étant un groupe de contrôles, "winsock" est utilisable comme collection

un FOR EACH résoudra ton problème
++
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010

Yeah Super ! j'ai pas penser a ça, "For Each Control in Winsock" Super Merci ça marche mannant

Merci [../auteur/PCPT/401740.aspx PCPT]

Technologie Reacen²
Messages postés
14008
Date d'inscription
samedi 29 décembre 2001
Statut
Modérateur
Dernière intervention
28 août 2015
76
Rappel : C'est une très mauvaise idée d'appeler ses objets, controles ou variables, comme des noms d'objet du système ou comme un mot clé du langage.
Un jour, le compilateur aura du mal à savoir si tu veux t'adresser à un de tes objets ou bien à la classe du système, les erreurs que cela peut entrainer ne sont pas facile à interpréter (déclenchement de message d'erreur n'ayant parfois rien à voir avec l'objet).
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010

C'est vrais oui. Merci jack

Mais, j'ai remarquer que beaucoup de sources ici usent aussi "For Each Control in Blabla" (Control). Et pi ça m'as jamais causer de problèmes moi ...

Technologie Reacen²
Messages postés
13280
Date d'inscription
lundi 13 décembre 2004
Statut
Modérateur
Dernière intervention
3 février 2018
46
bin ouai, y'a de tout, comme codes....
faut pas prendre les mauvais exemples en référence

for each ctrl in wsocks, par exemple
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010

Voila biens dis Merci.

Technologie Reacen²
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
38
JE ne pense pas que Jack voulais parler du For Each Control .... (bien que cela s'applique là aussi). Sa remarque était plutôt pour ta variable Winsock() qui à la même nom que la classe (controle) Winsock.

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #    http://aide-office-vba.monforum.com/index.php
Messages postés
282
Date d'inscription
mardi 22 août 2006
Statut
Membre
Dernière intervention
21 décembre 2010

Ah...

Technologie Reacen²