échange contenu textboxes entre client et serveur [Résolu]

Mohamed - 16 oct. 2014 à 00:46 - Dernière réponse :  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.
Afficher la suite 

37 réponses

Répondre au sujet
NHenry 14138 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 16 oct. 2014 à 19:47
0
Utile
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.
Commenter la réponse de NHenry
0
Utile
4
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)
NHenry 14138 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 17 oct. 2014 à 22:12
Je pense avoir compris ta demande, as-tu exploré les pistes que je t'ai conseillé ?
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.
NHenry 14138 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 18 oct. 2014 à 00:34
Commenter la réponse de Mohamed
0
Utile
11
toujours le problème se pose j'ai pas encore trouver de solution.
NHenry 14138 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 19 oct. 2014 à 20:44
Tu n'as même pas essayer ce que je t"ai proposé :
Client :
Chaine=Text1.Text & VbCrLf & Text2.Txt & ...

'Tu envoies la chaine
'...


Côté serveur :
MesTextBox() As String
MesTextBox=split(Chaine,VbCrLf)
'...
si mon ami je les essayer, j'ai mis mes textes sur form client, et un seul seul text multilines sur la form serveur, mes données des 7 champs de la form client se transfèrent sur le text multilines de la form serveur avec retour a la ligne. merci bien mais c'est que je veut chaque text recoie ces données indépandant des autres textes
jordane45 20652 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 19 oct. 2014 à 22:03
Tu n'as lu qu'a moitié sa réponse. .. il te suffit ensuite de splitter le resultat pour le redispatcher dans tes différentes textebox !
pourrais je avoir comment procéder avec le code
jordane45 20652 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 19 oct. 2014 à 22:40
Tu peux déjà commencer par regarder ceci :
http://codes-sources.commentcamarche.net/forum/affich-10037583-plusieurs-texts-sur-form#13

Et puis.. au cas où il te manquerait quelques infos....ici :
http://lmgtfy.com/?q=vb6+string+split
Commenter la réponse de Mohamed
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 21/10/2014 à 01:30
0
Utile
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
Commenter la réponse de ucfoutu
0
Utile
2
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.
jordane45 20652 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 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
NHenry 14138 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 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é.
Commenter la réponse de Mohamed
0
Utile
7
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.
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.
NHenry 14138 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 22 oct. 2014 à 18:24
Merci d'aller lire l'aide de la fonction Split ...
med64 13 Messages postés samedi 9 février 2008Date d'inscription 23 octobre 2014 Dernière intervention - 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
jordane45 20652 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 23 oct. 2014 à 01:04
Si tu as lu l'aide tu as du essayer de modifier ton code....et donc qu'as tu écris ?
med64 13 Messages postés samedi 9 février 2008Date d'inscription 23 octobre 2014 Dernière intervention - 23 oct. 2014 à 01:41
j'ai fait de mon mieux, de ce qui j'ai pu faire tous le code et sur cette page, si vous voulez m'aider, ne soyer pas pingre, et de m'envoyer le code que vous voyez être applicable pour mon cas. je signale que je suis débutant pas compétant que vous le pensez
Commenter la réponse de Mohamed
pijaku 12205 Messages postés jeudi 15 mai 2008Date d'inscriptionModérateurStatut 13 septembre 2017 Dernière intervention - 23 oct. 2014 à 10:53
0
Utile
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.
Commenter la réponse de pijaku
jordane45 20652 Messages postés mercredi 22 octobre 2003Date d'inscriptionModérateurStatut 26 avril 2018 Dernière intervention - 23 oct. 2014 à 11:35
0
Utile
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


Commenter la réponse de jordane45
0
Utile
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 !!! )
*
Commenter la réponse de Mohamed
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - 24 oct. 2014 à 10:54
0
Utile
1
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.
mais c'est ca le problème dés le début, je ne sais pas comment concorder le split avec mon code.
Commenter la réponse de ucfoutu
ucfoutu 18039 Messages postés lundi 7 décembre 2009Date d'inscriptionModérateurStatut 11 avril 2018 Dernière intervention - Modifié par ucfoutu le 24/10/2014 à 20:34
0
Utile
1
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
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.
Commenter la réponse de ucfoutu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.