Conversion Caractères en hexadécimale
Fermé
MegaRadio
Messages postés
4
Date d'inscription
mardi 22 mai 2018
Statut
Membre
Dernière intervention
24 mai 2018
-
Modifié le 22 mai 2018 à 20:41
Utilisateur anonyme - 26 mai 2018 à 13:39
Utilisateur anonyme - 26 mai 2018 à 13:39
A voir également:
- Conversion Caractères en hexadécimale
- Caractères ascii - Guide
- Caractères spéciaux clavier azerty - Guide
- Caractères spéciaux - Guide
- Caractères spéciaux mac - Guide
- 8 caractères exemple - Guide
2 réponses
Utilisateur anonyme
22 mai 2018 à 19:51
22 mai 2018 à 19:51
Bonsoir
je ne suis pas sûr d'avoir compris
Sinon, on a tous débuté un jour.
Ce qui est judicieux c'est de commencer par les bases, ce cours est bien
https://plasserre.developpez.com/cours/vb-net/
D'autre part, tu mélanges VB6 et VB.Net, c'est déconseillé, voir ce petit article
https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
je ne suis pas sûr d'avoir compris
Dim hexa As String = "ABC" Dim debut As String = hexa.Substring(0, 1) Dim fin As String = hexa.Substring(1) Dim poidsFort As String = Convert.ToString(Integer.Parse(debut, System.Globalization.NumberStyles.HexNumber), 2) Dim poidsFaible As String = Convert.ToString(Integer.Parse(fin, System.Globalization.NumberStyles
Sinon, on a tous débuté un jour.
Ce qui est judicieux c'est de commencer par les bases, ce cours est bien
https://plasserre.developpez.com/cours/vb-net/
D'autre part, tu mélanges VB6 et VB.Net, c'est déconseillé, voir ce petit article
https://codes-sources.commentcamarche.net/faq/11151-pourquoi-mon-code-vb6-vba-ne-marche-pas-en-vb-net
yg_be
Messages postés
23476
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
20 février 2025
Ambassadeur
1 568
22 mai 2018 à 19:53
22 mai 2018 à 19:53
bonsoir, moi je ferais ainsi, si je voulais vraiment saisir 3 caractères hexa par une texbox, et ensuite fabriquer une adresse sur deux octets (msb,lsb):
- convertir les trois caractères hexa en trois nombres (de 0 à 15): c1, c2, c3
-
- convertir les trois caractères hexa en trois nombres (de 0 à 15): c1, c2, c3
-
Dim resultat As Integer Dim c1 As Integer, c2 As Integer, c3 As Integer resultat = ((c1 * 16) + c2) * 16 + c3
MegaRadio
Messages postés
4
Date d'inscription
mardi 22 mai 2018
Statut
Membre
Dernière intervention
24 mai 2018
23 mai 2018 à 21:35
23 mai 2018 à 21:35
Désolé, je pense que cela ne correspond pas à ce que je souhaite, car au niveau du resultat, il faut que l'adresse soit sur deux octets pour êtres transmit par liaison série au "PIC".
J'ai mis un nouvel exemple de ce qui fonctionne bien dans le cas où les adresses sont dans le programme et non saisie par une textbox.
Encore merci de votre aide.
J'ai mis un nouvel exemple de ce qui fonctionne bien dans le cas où les adresses sont dans le programme et non saisie par une textbox.
Encore merci de votre aide.
23 mai 2018 à 21:20
Dans l'adresse que je dois transmettre, l'octet poids fort (dans l'exemple "ABC") aura pour valeur : Décimale 10 - Hexa 0A - Binaire 00001010, et pour les poids faibles : Décimale 188 - Hexa BC - Binaire 1011 1100.
Comme je l'indiquais, je n'ai pas eu de problème avec les adresses écrites dans le programme style : &h04 & &hFF.
ci-dessous, une partie du prg qui fonctionne bien, dans lequel on voit la déclaration et le chargement de MSB et LSB en hexa.
Voila pour l'instant les précisions que je peux vous apporter (J'utilise Visual Basic express 2010).
Public Addr_Bin_Msb As Byte
Public Addr_Bin_Lsb As Byte
Public Val_Bin As Byte
Addr_Bin_Msb = &H11 ' Charge l'adresse MSB.
Addr_Bin_Lsb = &HA ' Charge l'adresse LSB.
Sub TRANSCOM() ' Ecriture Port Serie COM1
' Reading Bank 2 octets pour l'adresse à lire.
If Writ_Read = "Reading" Then ' Transfert de deux octets
Dim data_Trans As Byte() = {&H3, Addr_Bin_Msb, Addr_Bin_Lsb} ' Nombre de byte et Assemblage des deux bytes.
SerialPort1.Write(data_Trans, 0, 3) ' Transmet le tabeau.
End If
' Writing Bank
If Writ_Read = "Writing" Then ' Transfert de trois octets, deux octets pour l'adresse et un pour la valeur paramètre.
Dim data_Trans As Byte() = {&H4, Addr_Bin_Msb, Addr_Bin_Lsb, Val_Bin} ' Assemble les trois.
SerialPort1.Write(data_Trans, 0, 4) ' Transmet le tabeau.
Call CONVERTION(Val_Bin) ' Sub Routine Conversion pour affichage
Call CONVERTION_DISPLAY() ' en décimale, hexa, binaire
End If
End Sub
23 mai 2018 à 21:58
à l'avenir, merci d'utiliser la coloration syntaxique.
Quand Baladur13 a corrigé ta question initiale, il a mis un gros encart bleu pour attirer ton attention sur ce point.
Au centre de cet encart, se trouve un lien vers le petit tuto.
Ça fait bien longtemps que je ne me fatigue plus à décrypter des codes non mis en forme, surtout que je vois trainer du VB6 et qu'en plus tu dis que ce code ne te pose pas de problème (alors pourquoi le lire?)
En effet, il semble que j'ai merdé mon copier coller.
Ces 2 lignes sont sensées faire la même chose donc devraient être identiques, aux variables près.
Du coup, je pense que tu peux corriger toi même mon erreur de copier coller.
23 mai 2018 à 22:24
Oui, en effet, j'ai corrigé l'erreur après avoir envoyé le deuxième message.
J'ai bien essayé d'utiliser la coloration syntaxique, mais apparament ça n'a pas marché, j'essairais une autre fois.
Demain je verrais si je peux utiliser les variables poidsfort, poidsfaible, mais dans l'exemple du deuxième message, ce sont des bytes que je transmet.
Cordialement.
24 mai 2018 à 07:19
24 mai 2018 à 20:55
Excellent, ça fonctionne parfaitement, je vais intégrer les modifs dans le programme final.
Actuellement, lorsque je saisie les trois caractères avec la textbox, même si ceux-ci ne sont pas hexa ils sont affichés,
hors je pense qu'il est possible peut-êtres en utilisant "keycode" ou quelque chose comme ça, mais , mes connaissances ne sont pas suffisante.
Encore grand merci de m'avoir décoinsé
Pour la colorisation du programme, est-ce qu'elle peut se faire quand on mets le progamme dans la fenêtre ou lorsqu'on valide, parce que j'ai essayé et ça m'a pas marché.
Bien cordialement.