Petite précision sur la Fonction Hex() [Résolu]

Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
- - Dernière réponse : lesdis
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
- 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
Afficher la suite 

5 réponses

Meilleure réponse
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 119 internautes nous ont dit merci ce mois-ci

Messages postés
258
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
20 février 2008
1
0
Merci
ben c'est assez propre comme ca non ?
sinon ya traitement = Format(traitement, "00")

A+.
Thomas.
Messages postés
7401
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
43
0
Merci
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
Messages postés
401
Date d'inscription
mercredi 19 avril 2006
Statut
Membre
Dernière intervention
6 juin 2011
0
Merci
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.
Messages postés
258
Date d'inscription
jeudi 17 avril 2003
Statut
Membre
Dernière intervention
20 février 2008
1
0
Merci
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