VBA bit / octet / traitement
Module_29
Messages postés
31
Statut
Membre
-
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
f894009 Messages postés 17414 Date d'inscription Statut Membre Dernière intervention -
Bonjour,
J'aimerais savoir comment traiter une trame de reception hexa en un octet.
Je vous explique, je suis actuellement sur un projet VBA, j'ai realise sur excel un interface sur un userform qui dialogue avec une carte de simulation. ( avec mscomm1 )
J'envoi d'une textbox une commande et la carte me renvoi un reponse en hexa et ASCII . Par exemple pour une commande je recoi , dans ma textbox de reception en hexa "150DDA" et j'aimerai traiter cette derniere en 1 octet , sachant que les 8 bit on chacun une fonction ( un libelle si vous preferez ) et il y a donc sur cette fonction deux alternative " 0 " ou " 1 " qui correspondent a deux choix de la fonction.
J'aimerai de l'aide s'il voussoirs plait . Pour Avoir l'octet
Cordialement
J'aimerais savoir comment traiter une trame de reception hexa en un octet.
Je vous explique, je suis actuellement sur un projet VBA, j'ai realise sur excel un interface sur un userform qui dialogue avec une carte de simulation. ( avec mscomm1 )
J'envoi d'une textbox une commande et la carte me renvoi un reponse en hexa et ASCII . Par exemple pour une commande je recoi , dans ma textbox de reception en hexa "150DDA" et j'aimerai traiter cette derniere en 1 octet , sachant que les 8 bit on chacun une fonction ( un libelle si vous preferez ) et il y a donc sur cette fonction deux alternative " 0 " ou " 1 " qui correspondent a deux choix de la fonction.
J'aimerai de l'aide s'il voussoirs plait . Pour Avoir l'octet
Cordialement
A voir également:
- VBA bit / octet / traitement
- Winrar 64 bit - Télécharger - Compression & Décompression
- Power iso 32 bit - Télécharger - Gravure
- Cle windows 10 professional 64 bit gratuit - Guide
- Reconsidérer le traitement de vos informations à des fins publicitaires - Accueil - Réseaux sociaux
- 32 bit - Guide
4 réponses
Bonjour,
Vous avez le choix.
Par Hubck 18 janv. 2012
Ensuite vous faites des test bit avec un and et les poids des bits qui vous interessent
Ou
Par Pierre Fauconnier 21/11/2007
Ensuite vous faites des test de caractere avec Mid(x,y,1) sur la position des bits qui vous interessent
Bonne suite
Vous avez le choix.
Par Hubck 18 janv. 2012
Function Hex2Dec(Hexa As String) As Double
Dim i As Integer, Multi As Integer
Hex2Dec = 0
Hexa = UCase(Trim(Hexa))
If Not Hexa Like "*[G-Z]*" Then
For i = 1 To Len(Hexa)
Multi = CInt("&H" & (Mid(Hexa, Len(Hexa) - i + 1, 1)))
Hex2Dec = Hex2Dec + (Multi * 16 ^ (i - 1))
Next i
End If
End Function
Ensuite vous faites des test bit avec un and et les poids des bits qui vous interessent
Ou
Par Pierre Fauconnier 21/11/2007
Function HexToBin(NombreHex As String) As String
Dim tHex, tBin
Dim i As Integer, j As Integer
Dim Binaire As String
Dim Trouve As Boolean
Binaire = ""
NombreHex = UCase(NombreHex)
tHex = Array("0", "1", "2", "3", "4", "5", "6", "7", "8", "9", "A", "B", "C", "D", "E", "F")
tBin = Array("0000", "0001", "0010", "0011", "0100", "0101", "0110", _
"0111", "1000", "1001", "1010", "1011", "1100", "1101", "1110", "1111")
For i = 1 To Len(NombreHex)
Trouve = False
For j = 0 To 15
If tHex(j) = Mid(NombreHex, i, 1) Then
Binaire = Binaire & tBin(j)
Trouve = True
Exit For
End If
Next j
If Not Trouve Then HexToBin = "": Exit Function
Next i
HexToBin = Binaire
End Function
Ensuite vous faites des test de caractere avec Mid(x,y,1) sur la position des bits qui vous interessent
Bonne suite
bonjour,
tout d'abord merci pour les exemples, mais j'aimerai savoir comment vous faites des test bit avec un and et les poids des bits ??
Cordialement
tout d'abord merci pour les exemples, mais j'aimerai savoir comment vous faites des test bit avec un and et les poids des bits ??
Cordialement
Bonjour,
Un exemple de programme de test bits apres decodage HEXA/DECIMAL
https://www.cjoint.com/?BFcissTpmWN
Bonne suite
Un exemple de programme de test bits apres decodage HEXA/DECIMAL
https://www.cjoint.com/?BFcissTpmWN
Bonne suite