Bonjour dans mon application je rempli un tableau de bytes avec des valeur que je recois. Seulement ces valeurs sont des chiffres.
Je voudrais savoir comment faire pour convertir mes valeur décimel en hexa decimal
Version imprimable
Bonjour dans mon application je rempli un tableau de bytes avec des valeur que je recois. Seulement ces valeurs sont des chiffres.
Je voudrais savoir comment faire pour convertir mes valeur décimel en hexa decimal
Tu as une fonction ToHexString qui fait pile ce que tu veux dans la librairie Dvp.Net.
Un peu de pub, ça ne fait pas de mal ;)
j'ai cru comprendre qu'il fallait avoir VS 2010...
Je boss sous VB 2008 express edition, comment l'installer?
Pas besoin de cette bibliothèque.
Regarde si tu peu faire Conversion.Hex(tavaleur)
apres des recherche j'ai trouvé ceci :
je l'ai appliqué à mon tableau de bytes comme suit:Code:.toString("X") 'converti en hexa
le soucis c'est que ca ne change rien cela me renvoi toujours les valeurs en décimalCode:
1
2
3 For i As Byte = 0 To bufferin.Length TextBox1.Text = TextBox1.Text + vbNewLine & bufferin(i.ToString("X")) Next
tout ceci ne m'aide pas tellement :cry:
Si tu as toujours des entiers, tu peux utiliser la méthode
Code:Convert.toString(taValeur, 16)
avec cette methode ca n'affiche plus rien du tout.Code:
1
2
3 For i As Byte = 0 To bufferin.Length TextBox1.Text = TextBox1.Text + vbNewLine & bufferin(convert.ToString(16, i)) Next
Je ne compred pas pourquoi la methode ".toString("X") ne marche pas
Euh c'est normal que ton convert.Tostring() ne marche pas...tu as inversé les paramètres.
Le premier paramètre est ta valeur à convertir et le deuxième la base dans laquelle il doit être converti.
(Il faudrait que tu fasses les démarches de recherche et de réflexion avant de poser des questions ici, parce que développer signifie aussi chercher par soi même et comprendre ce que tu fais.)
Voila le fonctionnement.
J'ai un tableau de byte que j'envoi a une carte mère.
ensuite je rempli un autre tableau de byte avec les données que me renvoi la carte mère.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31 Dim bufferout() As Byte = New Byte(29) {TRAME_DEBUT1, _ TRAME_DEBUT2, _ TRAME_COMMANDE, _ TRAME_IDENTIFIANT_3, _ TRAME_IDENTIFIANT_2, _ TRAME_IDENTIFIANT_1, _ TRAME_IDENTIFIANT_0, _ TRAME_MDP_3, _ TRAME_MDP_2, _ TRAME_MDP_1, _ TRAME_MDP_0, _ TRAME_NB_DATA, _ TRAME_DATA0_3, _ TRAME_DATA0_2, _ TRAME_DATA0_1, _ TRAME_DATA0_0, _ TRAME_DATA1_3, _ TRAME_DATA1_2, _ TRAME_DATA1_1, _ TRAME_DATA1_0, _ TRAME_DATA2_3, _ TRAME_DATA2_2, _ TRAME_DATA2_1, _ TRAME_DATA2_0, _ TRAME_DATA3_3, _ TRAME_DATA3_2, _ TRAME_DATA3_1, _ TRAME_DATA3_0, _ TRAME_CHECKSUM1, _ TRAME_CHECKSUM2}
J'affiche ensuite ces valeur dans un textBox.Code:
1
2 Dim bufferin() As Byte = New Byte(29) {}
le soucis c'est que ces valeur s'affiche en décimal et moi je veux les afficher en HexaCode:
1
2
3
4 For i As Byte = 0 To bufferin.Length TextBox1.Text = TextBox1.Text + vbNewLine & bufferin(i) Next
Inversé ou pas la methode ne fonctionne pas.
Et je débute en développement donc EXCUSE MOI de ne pas avoir la meme réflexion que toi !!!:ccool:
et pour ce qui est des recherche j'en ai fait plus d'une avant de poster !!
Je suis en 3.5 et il n'y a pas de methode "Conversion"
Ben moi je l'ai et j'ai rien ajouté de moi même ^^" (3.5 sp1)
bizarre...:?
en tout cas je n'ai toujours pas résolu mon probleme :aie:
Euh, non, cette classe n'existe pas...
A la limite, je veux bien que tu aies une classe "Convert", mais Conversion, non.
Ben écoute je sais ce que je dis, je l'ai même tester..
Précision, j'utilise VS2010 mais je travail avec le FW3.5SP1.
Ce n'est pas une classe mais un module...je l'ai également sans aucune référence sous VS 2010 (et d'après msdn, elle existe depuis la version 2005).
Le lien