Conversion string en trame hexa

cs_shakey Messages postés 9 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 7 juillet 2015 - 6 déc. 2003 à 22:14
cs_shakey Messages postés 9 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 7 juillet 2015 - 18 déc. 2003 à 09:49
Salut tous,

qui peut me tuyauter sur une méthode pour passer d'une chaine de car (string de car 0..F) en une string qui contient les car en hexa
"ABC012" : 6 Car
AB C0 12 : 3 car

Bien sûr tu l(auras reconnu c'est pour envoyer une foutue trame hexa taper dans un text box à la mano.

Ciao LOL ;)
8-)
8-)

4 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
6 déc. 2003 à 22:53
Salut shakey 00 à FF 0 à 255 le jeu de caractères disponible

Pour transformer un caractère par son équivalent en hexa :
CarHexa$ = Hex(Asc(CarString$))
Pour être sûr d'avoir toujours 2 digits par code hexa :
CarHexa$ = Right$("00" & Hex(Asc(CarString$)), 2)

Pour refabriquer un caractère à partir d'un code héxa de 2 digits :
CarString$ = Chr(Val("&h" & CarHexa$))

Vala
Jack
0
gabchampagne Messages postés 216 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 5 mai 2004
16 déc. 2003 à 19:03
c poche jack
voici MA solution pour coder en hexa :

Function Hexa(Str As String) As String
Dim car
For i = 1 To Len(Str)
car = Mid$(Str, i, 1)
Hexa = Hexa & Hex$(Asc(car))
Next
End Function
0
gabchampagne Messages postés 216 Date d'inscription mercredi 2 avril 2003 Statut Membre Dernière intervention 5 mai 2004
17 déc. 2003 à 04:56
p.s si il doit y avoir un espace entre chaque valeur hexa (00 ff 3d) :
Function Hexa(Str As String) As String
Dim car
For i = 1 To Len(Str)
car = Mid$(Str, i, 1)
if i = Len(Str) then
Hexa = Hexa & Hex$(Asc(car))
else
Hexa = Hexa & Hex$(Asc(car)) & " "&
end if
Next
End Function
0
cs_shakey Messages postés 9 Date d'inscription mercredi 3 décembre 2003 Statut Membre Dernière intervention 7 juillet 2015
18 déc. 2003 à 09:49
Salut à tous,
Merci pour vos réactions et comme vous y avez consacré du temps, je poste les solutions symétriques que j'ai finalement implantées et qui ronronnent :

***************************************
Public Function Str2hex(ByVal s As String) As String
'Convertie une string en char hexa pour en faire une trame hexa RTU

Dim i, j As Integer
i 1: Str2hex ""
While (i < Len(s))
j = CInt("&H" & Mid(s, i, 2))
Str2hex = Str2hex & Chr(j)
i = i + 2
Wend
End Function

***************************************
Public Function Hex2str(ByVal s As String) As String
'Convertie une trame hexa RTU en une string

Dim i As Integer
Dim u As String
i 1: Hex2str ""
While (i <= Len(s))
u = Hex(Asc(Mid(s, i, 1)))
If Len(u) = 1 Then
u = "0" & u
End If
Hex2str = Hex2str & u & " "
i = i + 1
Wend
Hex2str = RTrim(Hex2str) ' retirer le blanc de droite
End Function
***************************************

LOL
0
Rejoignez-nous