échange contenu textboxes entre client et serveur

Résolu
Mohamed - Modifié par ucfoutu le 20/10/2014 à 07:20
 Mohamed - 25 oct. 2014 à 17:29
Bonjour, mes amis, je suis entrain de programmer une application client serveur sur vb6, tous vas très bien, mais le seul inconvénient c'est que j'ai sur les deux formes plusieurs textesboxes environs sept textes et je voudrais transmettre leurs contenus de la form client vers la forme serveur.
code coté serveur
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim message As String
Winsock1.GetData message
 Text1.Text = message & vbCrLf
 Text2.Text = message & vbCrLf    ' ainsi de suite ect...
'coté client
Private Sub Envoyer_Click()
Call Winconnect.SendData(Text1.Text)
Call Winconnect.SendData(Text2.Text) 'ect...


quelqu'un pouvait m'aider, merci d'avance

EDIT: Ajout de la coloration syntaxique.

11 réponses

NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
16 oct. 2014 à 19:47
Bonsoir,

En gros, tu n'arrives pas à savoir comment transmettre tes informations pour les récupérer correctement ensuite ?

Essayes de faire uen seule chaine (String) contenant le contenu de tes TextBox, séparé par un retour à la ligne (VbCrLf).
De l'autre côté, tu fais un split avec comme séparateur VbCrLf et tu récupères les informations dans le tableau.
0
merci mon ami pour ta réponse, mais je voie que j'ai pas exprimé ma question clairement; j'ai deux form la première form client doté d'un composant winsok et cinq text, le méme principe et construction de la form serveur, je veut transmettre les contenus des cinq text dans les zones de text correspondent sur la form serveur: voici mon code
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim message As String
Winsock1.GetData message
Text1.Text = message & vbCrLf
Text2.Text = message & vbCrLf ' ainsi de suite ect...
'coté client
Private Sub Envoyer_Click()
Call Winconnect.SendData(Text1.Text)
Call Winconnect.SendData(Text2.Text) 'ect...


EDIT : AJOUT DES BALISES DE CODE.
(jordane)
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
17 oct. 2014 à 22:12
Je pense avoir compris ta demande, as-tu exploré les pistes que je t'ai conseillé ?
0
oui mon ami sa marche parfaitement, mais ce que je veut est de que les
cinq textes existaient sur la form client leurs contenu sera transférer sur la form serveur en gardent chaque contenu dans le champ du texte qui lui attribué:
autrement dit le contenu du text1 de la form client sera transférer dans le champ du text1 constitué sur la form serveur, et ainsi de suite, chaque texte reçoit son contenu indépendamment.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 oct. 2014 à 00:34
0
toujours le problème se pose j'ai pas encore trouver de solution.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
18 oct. 2014 à 22:16
Quel code utilises-tu ?
0
VB6
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
19 oct. 2014 à 01:25
NHenry ne te demande pas dans quel LANGAGE (VB6) tu programmes..... il te demande le CODE que tu as écris pour envoyer./recevoir les données .....
donc.. POSTES NOUS ton code ( en utilisant les BALISES DE CODE)
0
je veux recevoir le contenu du text1 qui est sur la form serveur, je veux qu'il soit transférer dans le text1. qui se trouve sur la forme client, et le text2 qui est sur la form serveur, je veux aussi qu'il sera transférer dans le text2 de la form client et ainsi de suite

coté Serveur
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim message As String
Winsock1.GetData message
Text1.Text = message & vbCrLf
Text2.Text = message & vbCrLf ' ainsi de suite ect...

'coté client
Private Sub Envoie_Click()
Call Winconnect.SendData(Text1.Text)
Call Winconnect.SendData(Text2.Text) 'ect...

Merci
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
19 oct. 2014 à 13:15
Je t'avais conseillé une méthode :
"Essayes de faire uen seule chaine (String) contenant le contenu de tes TextBox, séparé par un retour à la ligne (VbCrLf).
De l'autre côté, tu fais un Split avec comme séparateur VbCrLf et tu récupères les informations dans le tableau. "
Mais visiblement, tu ne l'as pas appliqué, tu reste sur le même code depuis le début ignorant mes remarques, on ne fera pas le code à ta place.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 21/10/2014 à 01:30
Bonjour,
le titre donné ("Plusieurs texts sur Form") ne reflète pas la difficulté réelle.
Je l'ai modifié.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0

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

Posez votre question
ok ami pour toi ne reflète pas la difficulté réelle, pour moi si.
tu la modifié avec une difficulté, moi j'ai pas pus.
j'ai pas pus récupérer les sept textes sur la form serveur chaque contenu dans le champ du text approprié. félicitation.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
21 oct. 2014 à 11:38
ok ami pour toi ne reflète pas la difficulté réelle, pour moi si.

Quand on dit : Ne reflète pas la difficulté réelle.... c'est autrement dit : Le titre que tu as mis pour ta question ne RESUME pas le souci rencontré.
Ta question concerne l'envoie/reception des données client/serveur ... hors tu avais mis un titre n'ayant pas vraiment de rapport ... C'est pour ça qu' Ucfoutu à EDITE le titre de ta question et l'a reformulé.


j'ai pas pus récupérer les sept textes sur la form serveur chaque contenu dans le champ du text approprié. félicitation..

Donc au final... ton souci est résolu ou pas ??
Si c'est la cas, merci de penser à fermer la discussion.
(en cliquant sur le lien "Marquer comme résolu" qui se trouve sous le titre de la question)

Cordialement,
Jordane
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
21 oct. 2014 à 18:50
J'ajouterai que si ton problème n'est pas résolu, montres-nous le code que tu as essayé.
0
Code coté serveur

Private Sub Form_Load()
Winsock1.LocalPort = 200
Winsock1.Listen
End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long)
Winsock1.Close
Winsock1.Accept requestID
End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim message As String
Winsock1.GetData message
Text1.Text = message & vbCrLf   (text en multilines)
End Sub


COTE CLIENT

Private Sub Envoie_Click()
Winsock1.SendData Text1.Text & vbCrLf
Winsock1.SendData Text2.Text & vbCrLf
Winsock1.SendData Text3.Text & vbCrLf
Text1.Text = "" ' une foi envoyer, on efface le texte
Text2.Text = ""
Text3.Text = ""   ETC......
End Sub



Je recoie les donnees sur form serveur parfaitement, mais je veut les recevoirs sous forme de tableau, je veut recevoir chaque contenu dans son texte ; autrement dit le contenu du champ text1.text de la form client sera envoyé dans le champ text1.text sur la form serveur,
Et le contenu du champ text1.text de la form client sera envoyé dans le champ text1.text sur la form serveur, ainso de suite.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
21 oct. 2014 à 21:55
ET LES BALISES DE CODE ????
=> J'ai édité ton message (ENCORE) pour les ajouter !!!
La prochaine fois.... penses-y !
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
21 oct. 2014 à 21:57
Pour ce qui est de ton problème.....
Où se trouve le code avec le SPLIT ????
Ca fait plusieurs fois qu'on te dit.... Une fois récupéré les données (côté serveur) il faut faire un SPLIT de ta chaine pour la découper .... puis alimenter tes différentes textbox !
Que n'as tu pas compris dans les réponses précédentes que nous t'avons fourni ?
0
Dim message() As String
   Text1 = Split(Text1.Text, delimiter = ",")
Text1 = Split(Text1.Text, vbCrLf, vbText1.Text)
Text2 = Split(Text2.Text, vbCrLf, vbText2.Text)

J'ai rajouté ce code il me donne que le text1.text 'vide', c'est tous que j'ai pu faire.
J'abandonne, j'avoue que j'ai pas l'éternité devant moi pour trouvez le code exacte.
0
NHenry Messages postés 15112 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 13 avril 2024 159
22 oct. 2014 à 18:24
Merci d'aller lire l'aide de la fonction Split ...
0
med64 Messages postés 13 Date d'inscription samedi 9 février 2008 Statut Membre Dernière intervention 23 octobre 2014
23 oct. 2014 à 00:23
ok j'ai lu l'aide de la fonction split, mais sa n'a rien résolue.l'application reste toujours inachevée
0
pijaku Messages postés 12263 Date d'inscription jeudi 15 mai 2008 Statut Modérateur Dernière intervention 4 janvier 2024 14
23 oct. 2014 à 10:53
Bonjour,

1- Inutile de poster sur tous les forums, cela ne fera qu'embrouiller une situation qui l'est déjà beaucoup. cf : ce sujet sur CCM HT...

2- Tout le monde t'as dit ici, côté client : envoie tes données réunit dans une seule chaine de caractère.
Or, je lis ceci dans ton code :
COTE CLIENT
Private Sub Envoie_Click()
Winsock1.SendData Text1.Text & vbCrLf
Winsock1.SendData Text2.Text & vbCrLf
Winsock1.SendData Text3.Text & vbCrLf
Text1.Text = "" ' une foi envoyer, on efface le texte
Text2.Text = ""
Text3.Text = ""   ETC......
End Sub

Donc, tu ne tiens pas compte de ce que l'on te dit. Cela complique encore les choses.
Tu devrais avoir, côté client, une variable de type String, dans laquelle tu stockes le contenu de chacun de tes textbox séparés par vbCrLf.
Un peu comme ceci :
Dim MonEnvoi As String
MonEnvoi = Text1.Text & vbCrLf & Text2.Text & vbCrLf 'etc...
Winsock1.SendData MonEnvoi
Text1.Text = "" ' une foi envoyer, on efface le texte


3- Côté serveur. tu nous dit que Text1.Text est vide...
Ton code réceptionnant est le suivant :
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim message As String
Winsock1.GetData message
Text1.Text = message & vbCrLf  ' (text en multilines)
End Sub

Je n'y connais rien à VB6, mais... Ta variable message, que contient-elle après la ligne :
Winsock1.GetData message
?
Pour le savoir, places une bête MsgBox pour vérifier le contenu de message, comme ceci :
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
Dim message As String
Winsock1.GetData message
MsgBox message
End Sub


Donc, corriges le code comme montré dans le point 2, observe le résultat du point 3 et reviens ici nous dire ce qu'il en est.

Dans ta prochaine réponse, j'espère voir :
- le code modifié côté client, comme indiqué,
- le contenu du MsgBox affiché côté serveur.
0
jordane45 Messages postés 38138 Date d'inscription mercredi 22 octobre 2003 Statut Modérateur Dernière intervention 17 avril 2024 344
23 oct. 2014 à 11:35
En complément de la réponse de Pika...

voici comment utiliser le SPLIT ..

Winsock1.GetData message

 Dim data() As String
data = split(message, vbCrLf )

 Dim i As Integer
 For i = 0 To UBound(data )
    	'Le résultat s'affiche dans la fenêtre d'execution de l'éditeur de macros
        Debug.Print data(i)
 Next i


0
voila mes amis, j'ai fait comme vous m'avez conseiller.

coté client:
Dim MonEnvoi As String
  MonEnvoi = Text1.Text & vbCrLf & Text2.Text & vbCrLf 'etc...
  Winsock1.SendData MonEnvoi
  Text1.Text = "" 
  Text2.Text = "" 



coté serveur:
option explicite
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long)
  Dim message As String
  Winsock1.GetData message
  MsgBox message
End Sub

quant le message m'apparait je clique, et recoie toujours mes données dans un seul champ le champ du text1.text avec retour a la ligne.
je veut dispatcher ces données recu comme suit: chaque ligne sera récupérer dans son champ de text.
la première ligne sera récupérer dans le champ du text1.text
la deuxième ligne sera récupérer dans le champ du text2.text ainsi de suite.

je vous remercies de vos patience


EDIT : AJOUT DES BALISES DE CODE ...( ENCORE !!! )
*
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
24 oct. 2014 à 10:54
et recoie toujours mes données dans un seul champ le champ du text1.text avec retour a la ligne.
je veut dispatcher ces données recu comme suit: chaque ligne sera récupérer dans son champ de text.
la première ligne sera récupérer dans le champ du text1.text
la deuxième ligne sera récupérer dans le champ du text2.text ainsi de suite.

Oui ? ben : il me semble que tu as eu ta solution dans ce message de jordane45, non ?
jordane45 23 oct. 2014 à 11:35
Applique-la.
0
mais c'est ca le problème dés le début, je ne sais pas comment concorder le split avec mon code.
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
Modifié par ucfoutu le 24/10/2014 à 20:34
Ah !
Eh bien : tu lis ce que t'a dit jordane45. Tu lis également ce qu'en dit MSDN. Et tu nous montres ce que tu as tenté sur la base de ces lectures.
Pour ton info : tout cela (lecture et application) est d'une grande simplicité. Si cela t'échappe, tu peux te poser de très nombreuses questions sur ton goût pour le développement et sur ta capacité à développer.
Reviens avec ton code d'essai et on verra ...

________________________
Réponse exacte ? => "REPONSE ACCEPTEE" facilitera les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement répéter son contenu. Je n'interviend
0
si vous avez essayer mon code dés le début vous aurez constaté que sa marche très bien la récupération des données transmises par client dans un seul text1.text avec retour a la ligne, et vous aurez compris bien ma question par laquelle j'ai éclaircie plusieurs fois merci problème résolu, sujet clos. mais référencer vous ici.
En haut de de cette page, juste au début de la discussion, mon code déposé, sa marche convenablement

sujet clos réponse accepté, problème résolu.

Merci de tout et a tous.
0
Rejoignez-nous