CONVERSION DÉCIMAL/HEXA ET DÉCIMAL/CARACTÈRE

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 - 24 déc. 2004 à 16:10
cs_zifnig Messages postés 16 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 28 mai 2007 - 9 mars 2006 à 14:06
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.

https://codes-sources.commentcamarche.net/source/28389-conversion-decimal-hexa-et-decimal-caractere

cs_zifnig Messages postés 16 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 28 mai 2007
9 mars 2006 à 14:06
Tu as la conversion décimal/hexa tant que le décimal est inféfieur à 256 (sinon il faut un algorithme avec lequel tu garde le reste de la division par 256 pour attaquer la table).

Si c'est la conversion hexa/deci qui te manque, voici un exemple (il y a d'autres méthodes) :


Public Function conv_hexa_deci(ByVal code_hexa As String, ByVal lgn_hexa As Integer) As Long
Dim c, resultat, val_int As Integer
Dim val_str As String

resultat = 0
For c = 1 To lgn_hexa
val_str = Mid$(code_hexa, c, 1)
Select Case (val_str)

Case "A" To "F"
val_int = Asc(val_str) - 55
Case "0" To "9"
val_int = Asc(val_str) - 48
End Select

resultat = resultat + (val_int * (16 ^ (lgn_hexa - c)))

Next c

conv_hexa_deci = resultat

End Function
FeelCode Messages postés 278 Date d'inscription vendredi 16 avril 2004 Statut Membre Dernière intervention 27 avril 2006 1
9 mars 2006 à 11:06
très bon code et avec l'exemple d'une declaration d'un tableau que j'ai vu mai completemnt oublier :)

il manque qu'une seul chose la convertion du Dec a l'Hexa :)

9/10 :)
Optitech Messages postés 134 Date d'inscription samedi 19 octobre 2002 Statut Membre Dernière intervention 3 janvier 2009
6 sept. 2005 à 19:33
Slt !

C'est normal que tu gagne du temsp dans ta source ! Tu n'effectu aucun calcul ! Tu pique just les bon code et caractere dnas un tableau ! Conseil : Pour ganger encore tu temps crer ton table amuellement au lieu d'utiliser split !

Voilà un tableau en VB :

tabunite = Array("o", "Ko", "Mo", "Go", "To", "Po", "Eo", "Zo", "Yo")

@++

Optitech
cs_zifnig Messages postés 16 Date d'inscription vendredi 10 septembre 2004 Statut Membre Dernière intervention 28 mai 2007
3 janv. 2005 à 13:46
Voilà, j'ai ajouté le zip où se trouve le code complet, avec en prime une form permettant l'affichage de la conversion.

NB : la chaine de caractère est entre guillemets et la guillememet est échapée, pas de pb pour l'apostrophe (la virgule est forcée après : tab_ascii(44) = ",")

NB2 : pas de boucle for pour l'ASCII car les caractères de 0 à 31 n'étant pas "affichable" comme on l'entant, ils sont remplacés par des points (pour l'hexa je m'étais fais un pgm pour le générer).
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
26 déc. 2004 à 00:32
Salut zifnig
L'idée est bonne si elle fait gagner du temps par rapport au standard Hex et Val("&h" & Hexa)
Par contre, il est inexploitable pour les lecteurs car la chaine stockant tous les caractères ascii n'est pas "copier/collable" (à cause justement des codes ascii qui ne sont pas visualisables)
Deux solutions :
-1- Tu nous ajoutes un petit zip
-2- Tu modifies la création des chaines initiales (plus besoin de Const) comme ceci : (dans le Form_Load pour ne le faire qu'une seule fois)
ReDim tab_ascii(255) As String * 1
ReDim tab_hexa(255) As String * 2
For r = 0 to 255
tab_ascii(r) = Chr(r)
tab_hexa(r) = Format(Hex(r), "##")
Next r
retaks666 Messages postés 286 Date d'inscription jeudi 2 janvier 2003 Statut Membre Dernière intervention 16 juillet 2007
24 déc. 2004 à 16:58
ça semble intéressant, mais il faudrait que tu remplace ' par sa valeur, sinon toute la suite de la chaine risque d'être prise comme un commentaire non ?
Rejoignez-nous