Tableau et valeurs en hexa

Résolu
simgoku Messages postés 38 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 28 mai 2008 - 13 mai 2008 à 10:43
simgoku Messages postés 38 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 28 mai 2008 - 13 mai 2008 à 15:48
Bonjour a tous,

Je me suis mis récemment au VB6...

Je programme actuellement une interface reliant mon pc a un automate, cependant je rencontre un probléme.

Je souhaite envoyer une trame  a l'automate, cette trame doit etre
envoyée en hexa, j'ai donc déclaré un tableau comme ceci :

dim trame(10) as byte


Je veux lui faire prendre des valeurs en hexa, cependant il refuse et
me les passe toutes en décimal, même avec la fonction hex()... D'ou mon
probléme... J'ai déja pensé a déclaré mon tableau en string, mais cela
pose des problémes au niveau de mes paramétres dans les procédures que
j'utilise

Merci d'essayer de m'éclairer

Bonne journée

25 réponses

Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mai 2008 à 14:44
une possibilité manquait...

Dim Trame As String
Dim i As Long
Dim TrameEnvoi As String
Trame = ":04030000FF100AE0"

TrameEnvoi = Space$(LenB(Trame) + 4)
For i = 0 To Len(Trame) - 1
Mid$(TrameEnvoi, 1 + i * 2, 2) = Right$("0" & Hex$(Asc(Mid$(Trame, i + 1, 1))), 2)
Next i
Mid$(TrameEnvoi, 1 + i * 2, 4) = "0D0A"


pourvoir obtenir la chaine de caractère codée en Hexa
0
simgoku Messages postés 38 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 28 mai 2008
13 mai 2008 à 14:48
Le probléme c'est que ma trame de départ n'est pas déclarée en "string"
mais en  byte, c'est donc impossible de faire ca....J'obtiens donc
au final une trame de type byte  qui me retourne un truc du genre
: " 580301...."
0
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
13 mai 2008 à 15:13
Dim Trame() As Byte
Dim i As Long
Dim TrameEnvoi As String
ReDim Trame(7)
Trame(0) = &H4
Trame(1) = &H3
Trame(2) = &H0
Trame(3) = &H0
Trame(4) = &HFF
Trame(5) = &H10
Trame(6) = &HA
Trame(7) = &HE0

TrameEnvoi = Space$(UBound(Trame) * 4 + 10)
Mid$(TrameEnvoi, 1, 2) = "3A"
For i = 0 To UBound(Trame)
Mid$(TrameEnvoi, 3 + i * 4, 4) = Right$("0" & Hex$(Asc(Hex$(Trame(i) \ &H10))), 2) & _
Right$("0" & Hex$(Asc(Hex$(Trame(i) And &HF))), 2)
Next i
Mid$(TrameEnvoi, 3 + i * 4, 4) = "0D0A"



le ":" et le vbCrLf sont ajoutés dynamiquement a la trame
0
simgoku Messages postés 38 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 28 mai 2008
13 mai 2008 à 15:21
Je ne comprend pas bien ton programme, désolé mais pourrait tu juste rajouter quelques commentaires?? (je débute désolé)

Sinon dans ton programme je ne pourrais pas intégrer de calcul de checksum non?

Merci de prendre du temps a me répondre c'est gentil
0

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

Posez votre question
simgoku Messages postés 38 Date d'inscription dimanche 4 juin 2006 Statut Membre Dernière intervention 28 mai 2008
13 mai 2008 à 15:48
Tres bien , je pense que je vais utiliser ta solutions, en changeant
quelques trucs pour pouvoir calculer le checksum par exemple...En tout
cas merci beaucoup de ton aide : )
0
Rejoignez-nous