Petite précision sur la Fonction Hex()

Résolu
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020 - 20 avril 2006 à 17:08
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020 - 20 avril 2006 à 18:23
Bonjour,



Dans mon code je récupère un tableau chaine() déclaré en byte.
Afin de pouvoir en tirer des informations, j'ai besoin de les convertir
en hexadécimal. Malheuresement, la fonction Hex() enleve le 0 qui
n'est pas utile.

Par exemple, lorsque je lui demande de convertir 12 en héxa j'aimerais qu'il me donne "0C" au lieu de "C".



Pour le moment j'ai du passer par un petit bout de code :



Traitement = Hex(Chaine(i))

If Len(Traitement) = 1 Then

Traitement = 0 & Traitement

End If



mais j'aimerais savoir si il n'y avait pas un moyen plus simple et plus "propre" pour arriver au même résultat.



Merci d'avance

5 réponses

lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
20 avril 2006 à 18:23
Bon en allant fouiller la classe string j'ai trouver cette petite methode bien sympathique String.padleft()



Traitement = Hex(Chaine(i))

Traitement = Traitement.PadLeft(2, "0")



Ainsi, je suis sur que traitement sera sur 2 caractères et qu'il remplacera les espaces manquant de gauche par des 0.



Merci a tous ceux qui ce sont penché sur mon problème
3
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
20 avril 2006 à 17:22
ben c'est assez propre comme ca non ?
sinon ya traitement = Format(traitement, "00")

A+.
Thomas.
0
jrivet Messages postés 7392 Date d'inscription mercredi 23 avril 2003 Statut Membre Dernière intervention 6 avril 2012 60
20 avril 2006 à 17:30
Salut,

> jannoman: Je pensais lui proposer ceci aussi mais je l'ai testé et ca ne marche pas... ça affiche toujours "C"

@+, Julien
Pensez: Moteur de Recherche, Réponse Acceptée
0
lesdis Messages postés 403 Date d'inscription mercredi 19 avril 2006 Statut Membre Dernière intervention 7 août 2020
20 avril 2006 à 17:43
Merci Thomas,



Mais la fonction Format() ne m'est pas d'utilité dans ce cas car elle ne s'applique qu'à des chiffres.

Mon problème est que la fonction Hex() te donne un String.
0

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

Posez votre question
jannoman Messages postés 256 Date d'inscription jeudi 17 avril 2003 Statut Membre Dernière intervention 20 février 2008 1
20 avril 2006 à 17:52
alors disons que pour un code général, tu peux faire :
n est le nombre de chiffres que tu veux
a = hex(tonnombre)
b = la chaine de retour

b = space(n)
for k = 1 to n
mid(b,k,1) = "0"
next k

m = len(a)

for k = 1 to m
mid(b, k + n - m, 1) = mid(a, k, 1)
next k

j'ai pas mon ordi la mais a priori ca devrait marcher
0
Rejoignez-nous