Winsock et passage de type

Le
Marc
Bonjour,

Est il possible, et comment, de passer un type avec winsock ?

du style


Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type


Public Annuaire As AnnuaireCP

passage:

Winsock1.SendData Annuaire

pour l'instant je ne trouve pas la solution.

Si cela est possible comment on la récupère à l'autre bout ?
et comment on appel dans ce cas Annuaire.CP ?

Par avance merci.

Marc
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses Page 1 / 3
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Marc
Le #20441781
Ou alors est il possible, et comment, de creer en cours d'execution un type
du style ?

Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type


Public Annuaire As AnnuaireCP

Marc

Bonjour,

Est il possible, et comment, de passer un type avec winsock ?

du style


Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type


Public Annuaire As AnnuaireCP

passage:

Winsock1.SendData Annuaire

pour l'instant je ne trouve pas la solution.

Si cela est possible comment on la récupère à l'autre bout ?
et comment on appel dans ce cas Annuaire.CP ?

Par avance merci.

Marc



Jacques93
Le #20442181
Bonjour Marc,
Marc a écrit :
Bonjour,

Est il possible, et comment, de passer un type avec winsock ?

du style


Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type


Public Annuaire As AnnuaireCP

passage:

Winsock1.SendData Annuaire

pour l'instant je ne trouve pas la solution.




Une piste, passer par CopyMemory (RtlMoveMemory) avec un tableau de Bytes.

en anglais :

http://www.tek-tips.com/faqs.cfm?fid81

en "français" :

http://www.tek-tips.com/faqs.cfm?fid81
--

Cordialement,

Jacques.
Jean-marc
Le #20442171
Marc wrote:
Ou alors est il possible, et comment, de creer en cours d'execution
un type du style ?

Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type



Sur un socket avec Winsowck, on peut envoyer:
- une chaine de caractères
- un byte array

Le plus facile dans ton cas est donc de faire une petite fonction:

sub EnvoiIdxAnnuaireCP(v as IndexAnnuaireCP )
dim s as string

s = v.CP & v.Adresse
winsock1.senddata s
end sub

et à l'autre bout

Dim v as IndexAnnuaireCP
dim s as string

Winsock1.Getdata s
' bien vérifier la taille de s, et tout ça

' puis quand on est sur d'avoir tout reçu:
v.CP = mid$(s, 1, 10)
v.Adresse = mid$(s, 11)

L'exemple que je donne est évidemment rudimentaire, mais c'est l'idée.

Tu peux envoyer les données avec le protocole que tu veux,
pour autant qu'il soit compris des 2 cotés.

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Jacques93
Le #20442291
Jacques93 a loupé un copier/coller :

en "français" :

http://www.tek-tips.com/faqs.cfm?fid81




--

Cordialement,

Jacques.
Jacques93
Le #20442281
Marc a écrit :
Bonjour,

Est il possible, et comment, de passer un type avec winsock ?

du style


Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type





Drôle de pays tout de même, adresse sur 10, Code Postal sur 50 ???
Les facteurs vont avoir du boulot ;-)


--

Cordialement,

Jacques.
Jean-marc
Le #20442431
Jacques93 wrote:
Marc a écrit :
Bonjour,

Est il possible, et comment, de passer un type avec winsock ?

du style


Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type





Drôle de pays tout de même, adresse sur 10, Code Postal sur 50 ???
Les facteurs vont avoir du boulot ;-)



Les fabricants d'enveloppes doivent aussi faire des formats
spéciaux:

+---------------------------------------------------------------+
| |
| ..... |
| . G . |
| . G . |
| ..... |
| |
| Mr Jean Dupont |
| 12345688228526974226325684623518395513848, Rue des tamaris |
| B - BizzarrVille - Bizzarland |
| |
+---------------------------------------------------------------+


--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Marc
Le #20442571
Merci à tous les deux,

en fait les nom sont bidons pour l'instant.

enfin presque.
l'adresse corespond au n° d'enregistrement dans un fichier avec random.

je travail à faire un serveur de fichier sequentiel indexé.

les solutions que vous m'avez données me permette d'avancer à grands pas.

Je pense à une dernière question:
Est-il possible de creer un type (structure en C) en cours d'execution.
En fait je stock sur mon serveur les nom et les tailles des champs dans un
fichier, de ce fichier il faudrait que je puisse creer le type avec les
infos du fichier.

Avez vous une ou plusieurs idées ?

Marc

- www.gelase.org
"Jean-marc" 4ae880a1$0$2847$
Jacques93 wrote:
Marc a écrit :
Bonjour,

Est il possible, et comment, de passer un type avec winsock ?

du style


Public Type IndexAnnuaireCP
CP As String * 50
Adresse As String * 10
End Type





Drôle de pays tout de même, adresse sur 10, Code Postal sur 50 ???
Les facteurs vont avoir du boulot ;-)



Les fabricants d'enveloppes doivent aussi faire des formats
spéciaux:

+---------------------------------------------------------------+
| |
| ..... |
| . G . |
| . G . |
| ..... |
| |
| Mr Jean Dupont |
| 12345688228526974226325684623518395513848, Rue des tamaris |
| B - BizzarrVille - Bizzarland |
| |
+---------------------------------------------------------------+


--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;






Jean-marc
Le #20442721
Marc wrote:
Merci à tous les deux,



Je pense à une dernière question:
Est-il possible de creer un type (structure en C) en cours
d'execution.



Non, ni en VB ni en C d'ailleurs, et pour des raisons évidentes:
il faudrait alors que le prgramme génère à l'exécution du code
pour manipuler le nouveau type ...

En fait je stock sur mon serveur les nom et les tailles
des champs dans un fichier, de ce fichier il faudrait que je puisse
creer le type avec les infos du fichier.



ok.

Avez vous une ou plusieurs idées ?



Oui.
Il te suffit de créer une chaine de taille égale à la somme
des tailles des champs et à écrire les champs aux bonnes positions.

Tu caches tout ça dans une couche un peu abstraite, bien sur.

Très classique en ISAM.

Cordialement,

--
Jean-marc Noury (jean_marc_n2)
FAQ VB: http://faq.vb.free.fr/
mailto: remove '_no_spam_' ;
Jacques93
Le #20444191
Jean-marc a écrit :
Jacques93 wrote:



Drôle de pays tout de même, adresse sur 10, Code Postal sur 50 ???
Les facteurs vont avoir du boulot ;-)






Bonjour Jean-Marc,

Les fabricants d'enveloppes doivent aussi faire des formats
spéciaux:

+---------------------------------------------------------------+
| |
| ..... |
| . G . |
| . G . |
| ..... |
| |
| Mr Jean Dupont |
| 12345688228526974226325684623518395513848, Rue des tamaris |
| B - BizzarrVille - Bizzarland |
| |
+---------------------------------------------------------------+





Ben oui pour les enveloppes, mais en fait non, ça c'est le code postal
de Mr DuponD !!!


--

Cordialement,

Jacques.
Jacques93
Le #20444291
Jean-marc a écrit :
Marc wrote:
Merci à tous les deux,



Je pense à une dernière question:
Est-il possible de creer un type (structure en C) en cours
d'execution.



Non, ni en VB ni en C d'ailleurs, et pour des raisons évidentes:
il faudrait alors que le prgramme génère à l'exécution du code
pour manipuler le nouveau type ...



Pas tout à fait d'accord, mais c'est relativement lourd à mettre en
oeuvre. Nous avons réussi, je dis nous sans pédanterie, nous étions
plusieurs, il y a quelques années, à gérer en VB des fichiers Isam
Microfocus, dont la description originale était en Cobol Microsoft (Si
si, il a existé). Ce qui implique des formats de données inconnus de VB
(COMP-0, Comp-3 (très intéressant), Comp-5, Comp-X), avec
enregistrements de longueur variable, tout cela en séquentiel indexé.

Ceci, dans une première phase, avec un .ini décrivant les divers
enregistrements et types de champs, ainsi que leur taille.

Cela suppose toutefois de connaitre les différentes structures que l'on
peut rencontrer.

J'avais participé précédemment aux mêmes genres de blagues en migrant
compilateur, et gestion de fichier de Dibol sous AIX, vers SCO Unix et
MS-DOS.

Dans tous les cas, ce fut une impasse, pas tellement en terme technique,
mais en terme de coût. Mais je parle ici de migration.

Si on part de zéro, je me rappelle avoir lu, mais je ne sais plus où,
que l'important n'est pas l'algorithme, mais comment on structure ses
données

--

Cordialement,

Jacques.
Publicité
Poster une réponse
Anonyme