cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 2015
-
24 déc. 2004 à 16:10
cs_zifnig
Messages postés16Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention28 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.
cs_zifnig
Messages postés16Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention28 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
FeelCode
Messages postés278Date d'inscriptionvendredi 16 avril 2004StatutMembreDernière intervention27 avril 20061 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és134Date d'inscriptionsamedi 19 octobre 2002StatutMembreDerniè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 !
cs_zifnig
Messages postés16Date d'inscriptionvendredi 10 septembre 2004StatutMembreDernière intervention28 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és14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 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és286Date d'inscriptionjeudi 2 janvier 2003StatutMembreDernière intervention16 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 ?
9 mars 2006 à 14:06
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
9 mars 2006 à 11:06
il manque qu'une seul chose la convertion du Dec a l'Hexa :)
9/10 :)
6 sept. 2005 à 19:33
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
3 janv. 2005 à 13:46
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).
26 déc. 2004 à 00:32
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
24 déc. 2004 à 16:58