cs_biboulou
Messages postés34Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention 4 janvier 2012
-
1 sept. 2009 à 06:59
cs_biboulou
Messages postés34Date d'inscriptionlundi 14 août 2006StatutMembreDernière intervention 4 janvier 2012
-
3 sept. 2009 à 20:52
bonjours je debut en VB6 j'ai commencé à faire un dialog entre une interface et mon pc via port com avec (mscomm) mais j'ai un soucis je sais pas trop comment l'expliquer
ne comprenand pas pourquoi ca marche pas j'ai sniffé le port com et voila la différance elle ce situe dans l'envoie
je prefere mettre un exemple
avec mon projet Port ouvert par le processus "vb6.exe" (PID: 3804)
Requête:01/09/2009 06:41:21.28864
44 31 30 43 30 30 30 30 30 38 D10C000008
avec un autre projet Requête:01/09/2009 06:44:35.36664 (+6.9219 seconds)
D10C 00 00 08 Á....
moi je voudrais envoyer d10c00008 et non pas des octets comme 44 31 30 43 30 30 30 30 30 38
il faut que je face quoi comme reglage dans mscomm ???
merci a+
<img src="/imgs2/
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 1 sept. 2009 à 09:49
Salut
MSComm n'y est pour rien.
C'est la méthode d'écriture/lecture avec laquelle il faut jongler :
Tu peux lire/écrire :
- en ascii : du texte, tout bête
- en byte : soit en décimal, soit en hexa
De toute façon, toutes ces formes correspondent à la même chose :
"D1 0C 00 00 08" qui est de l'ASCII s'écrit aussi
"D" = caractère ascii dont le code ascii est 68 en décimal et 44 en hexadécimal
"1" = &h31 (&h représente le format hexa)
"0" = &h30
"C" = &h43 , etc
Donc, tout dépend la manière avec laquelle tu écris.
Si tu dois envoyer du texte, comme "D10C000008", il te suffit de faire un Output avec une chaine.
Si tu veux écrire en Byte, libre à toi d'écrire chaque byte en décimal ou en hexa.
Le résultat sera de toute façon le même, sauf que, dans ton cas, le texte ressemble à de l'hexa et qu'il y a une confusion possible.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 2 sept. 2009 à 00:55
Re
Un caractère est contenu dans un Byte = Valeur de 0 à 255.
Exemple : Le code ASCII d'un "A" est 65, c-à-d Chr$(65) donne "A" et Asc("A") donne 65.
Un byte peut être affiché sous plusieurs formes : Décimal ou Hexadécimal (majeure partie de temps), mais aussi n'importe quel autre base (Décimal Base 10, Hexa Base 16)
Hex(32) donne 20 et Val("&h20") donne 32
Tout ceci pour dire que, Si tu envoies dans Output la lettre "A", le byte 65 ou en hexa &H41, c'est exactement la même chose, ce n'est qu'une interprétation.
Un byte = un caractère. Si tu dois envoyer une suite de bytes, il te suffit de fournir un tableau de bytes à Output. C'est pour ça que pour le texte, les String sont plus pratiques. Tout dépend ce que représentent tes données.
Regarde dans l'aide de chacune de ces instructions pour de + amples renseignements.
Vala
Jack, MVP VB NB : Je ne répondrai pas aux messages privés
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)