peug
Messages postés232Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 5 octobre 2012
-
3 déc. 2007 à 10:34
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 2021
-
4 déc. 2007 à 09:57
Bonjour,
Dans l'aide VB c'est noté que l'on doit créer un tableau d'octet pour passer des data avec Wsock.sendata.
Je voudrai passé une instance de classe (un objet quoi...)
Mais là je bute totalement,
A l'aide !!
peug
Messages postés232Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 5 octobre 2012 3 déc. 2007 à 14:10
La finalité est de faire un soft sur un serveur et plusieurs poste client.
Les données sont dans une collection que le serveur enregistre les client créer des item...
ou encore je pourrais faire dans la classe une sérialisation maison et le serveur dé-sérialisarai...
chaque item est un objet d'une classe avec dedans des propriétés comme des Integer, string, date etc...
Basiquement je pensais envoyer les paramètres comme en HTML... &dat="12/2/2008"&id=3&...
mais je pensais que passer l'item serait plus optimisé donc plus rapide.
Mais sinon dans un autre cas où le serveur stock dans une BDD qu'envoi alors les clients comme données ? tout reste en String ?
peug
Messages postés232Date d'inscriptionmercredi 25 octobre 2000StatutMembreDernière intervention 5 octobre 2012 3 déc. 2007 à 17:19
Voici mon idée pour le client/serveur afin de passer un flux pour une item de classe :
class1.cls :
Option Explicit
Public ID As Long
Public Note As String
Public Valeur As Integer
Public dat As Date
Public Function Serialize() As String
Dim sFlux As String
sFlux = ID & Chr(0)
sFlux = sFlux & Trim$(Note) & Chr(0)
sFlux = sFlux & Valeur & Chr(0)
sFlux = sFlux & dat
End Function
Public Function UnSerialize(ByVal sFlux As String) As Class1
Dim tb() As String
tb = Split(sFlux, Chr(0))
UnSerialize.ID = tb(0)
UnSerialize.Note = tb(1)
UnSerialize.Valeur = Val(tb(2))
UnSerialize.dat = CDate(tb(3))
End Function
...
Coté client :
set obj=col.item(x)
Puis wsock.sendata obj.Serialize
Vous n’avez pas trouvé la réponse que vous recherchez ?
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 4 déc. 2007 à 09:57
oui, si tu sérialize, ca colle... ca ira bien.
Public Function Serialize() As String
Dim sFlux As String
sFlux = ID & Chr(0)
sFlux = sFlux & Trim$(Note) & Chr(0)
sFlux = sFlux & Valeur & Chr(0)
sFlux = sFlux & dat
End Function
donnerait :
Public Function Serialize() As String
Serialize= ID & vbNullChar & _
Trim$(Note) & vbNullChar & _
Valeur & vbNullChar & _
dat
End Function
et lors du Unserialize, pense a vérifier ta chaine de caractère...
que ce soit bien le resultat du Serialize d'une instance de Class1