Winsock SendData ListBox ???

consiliblob Messages postés 29 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 8 août 2004 - 6 juil. 2004 à 17:34
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 7 juil. 2004 à 01:01
Bijour, me ai une question
Komment envoyer le contenu d'une ListBox avec winsock, sachant que le winsock à l'autre bout reçoit les données dans une String et qu'il faut qu'il recoive exactement la meme listbox que l'hote lui envoye ?
ThX si qq1 peut m'helper

5 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 juil. 2004 à 19:21
Salut consiliblob
En fait, quand tu envoyes plusieurs données à la suite, la réception concatène (regroupe) les chaines les une derrière les autres.
Pour palier à ce problème, il suffit d'insérer un séparateur entre chaque donnée. Il faut choisir un caractère qu'on ne peut pas rencontrer dans les textes standards : je te propose Chr(0):
-1- A l'expédition, tu as dû faire une boucle du style :
For r = 0 to List.ListCount - 1
ws.SendData List.List(r)
Next r

alors, simplement, après chaque SendData, ajoute Chr(0) :
ws.SendData List.List(r) & Chr(0)

-2- A la réception, tu reçois maintenant tes données séparées par des Chr(0) : Il va suffire de les séparer :
Supposons que tu es lu tes données dans une chaine Temp
' Recherche un Chr(0)
r = Instr(1, Temp, Chr(0))
Do While r <> 0
' Si on en a un, on va isoler la donnée juste avant
MaDonnée = Left(Temp, r - 1)
' Si tu veux insérer cette donnée dans une ListBox
' côté réception, il te suffit de faire
List.AddItem MaDonnée
' On va supprimer cette chaine des données reçues
Temp = Mid(Temp, r + 1)
r = Instr(1, Temp, Chr(0))
DoEvent
Loop


Vala
Jack
consiliblob Messages postés 29 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 8 août 2004
6 juil. 2004 à 19:30
LoL Jack c'est toujours toi qui répond à mes question!
vais essayer^^
en tout cas Merci.
consiliblob Messages postés 29 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 8 août 2004
6 juil. 2004 à 19:57
Ouais! ca marche mais ya un problème (ouai c clair, ya toujours un problème). Pour savoir ce que le serveur reçoit comme donnée j'ai mis "021" devant (parce que ya d'autre commandes) et devant chaque item de la listBox j'ai 021. J'ai essayer de faire un Mid$(temps ,4) et ca tout fait planter VB. Alors comment faire ?
consiliblob Messages postés 29 Date d'inscription lundi 28 juin 2004 Statut Membre Dernière intervention 8 août 2004
6 juil. 2004 à 19:59
A non, c'est bon, au moment ou je poste j'ai trouvé la solution, fallait juste mettre List.AddItem Mid$(MaDonnée, 4)
lol
merci Jack :D

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

Posez votre question
cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
7 juil. 2004 à 01:01
Cool consiliblob
Rejoignez-nous