CONVERTISSEUR HEXAVIGÉSIMAL

NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 - 8 janv. 2012 à 01:56
perceval_59 Messages postés 18 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 17 septembre 2020 - 3 avril 2013 à 14:01
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/53958-convertisseur-hexavigesimal

perceval_59 Messages postés 18 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 17 septembre 2020
3 avril 2013 à 14:01
Autant pour moi (String et Double)
perceval_59 Messages postés 18 Date d'inscription mardi 30 décembre 2003 Statut Membre Dernière intervention 17 septembre 2020
3 avril 2013 à 13:59
J'avais il y a quelques années fait deux fonctions de conversions (qui sont utilisable comme un long)

'Decimal vers Hexavigesimal Excel
'ces deux fonctions permettent de manipuler du texte et du nombre afin
'de les transformer en Hexavigesimal(Texte) ou en nombre(Double)
Public Function DecToB26(ByVal Value As String) As String
If Not IsNumeric(Value) Then
DecToB26 = Value
Exit Function
End If
Value = Value - 1
Dim v1 As Long
Dim Resultat As String
Resultat = ""
Do While (Value >= 0)
v1 = (Value Mod 26)
Value = Int(Value / 26) - 1
Resultat = Chr(v1 + 65) & Resultat
Loop
DecToB26 = Resultat
End Function
'Hexavigesimal windows vers Decimal
Public Function B26ToDec(ByVal MyString As String) As Double
If IsNumeric(MyString) Then
B26ToDec = MyString
Exit Function
End If
Dim v2 As Double
Dim i As Integer
Dim j As Byte
Dim Resultat As Double
'Virer les Espaces
Dim MyString2 As String
MyString2 = Replace(MyString, " ", "")
For i = Len(MyString2) To 1 Step -1
v2 = Asc(Mid(MyString2, i, 1)) - 64
If v2 < 1 Then B26ToDec = Resultat If v2 >27 Then B26ToDec Resultat
For j = 1 To (Len(MyString2) - i)
v2 = v2 * 26
Next
Resultat = Resultat + v2
Next
B26ToDec = Resultat
End Function

le sujet etais abordé ici: http://www.vbfrance.com/codes/HEXAVIGESIMAL-BASE26_40441.aspx
shaeks Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Non membre Dernière intervention 19 août 2023
14 janv. 2012 à 22:43
Bonjour,
Je viens d'actualiser le code, j'ai pris en considération quelques recommandations.
@Renfield : Pour moi la programmation n'est qu'un hobby, ce n'est pas du tout ma spécialité. Mais j'aime bien ce domaine peut être que je vais suivre une formation la dessus pour approfondir mes connaissances.

Amicalement,
cs_ShayW Messages postés 3253 Date d'inscription jeudi 26 novembre 2009 Statut Membre Dernière intervention 3 décembre 2019 57
9 janv. 2012 à 09:32
Renfield Messages postés 17287 Date d'inscription mercredi 2 janvier 2002 Statut Modérateur Dernière intervention 27 septembre 2021 74
9 janv. 2012 à 07:35
de mauvaise fois, en fin de week-end, NHenry ^^
le titre parle bien de HEXAVIGÉSIMAL (doit faire du bien au scrabble...)

concernant le code, passes par un ES_UPPER que de jouer avec ta procédure 'capital'

le code Option1_Click et Option2_Click est inutile si les optionButtons sont sur le meme conteneur

le caption statique assigné dans le Form_Load peut l'etre dans la fenetre des propriétés

ton code se réduit alors sacrément ^^

Je trouve enfin, que tu ne controle pas assez la saisie
shaeks Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Non membre Dernière intervention 19 août 2023
9 janv. 2012 à 01:08
@NHenry : Merci pour les conseils, je vais les prendre en compte dans ma prochaine mise à jour une fois que j'aurais le temps...Bon début de semaine :)
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
8 janv. 2012 à 20:38
Bonsoir,

D'accord, ton exemple n'était pas claire, le code peut être confondu avec de l'hexa.

Quelques conseils :
- Nommes de manière explicite tes variables, à quoi sert var5 et var6 ?
- Nommes tes contrôles plus clairement, TxtInVal1 est plus claire que Text1 (Textbox Input Value 1)

Je pense que ça facilitera la lecture du code.
shaeks Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Non membre Dernière intervention 19 août 2023
8 janv. 2012 à 19:50
Ici il s'agit de la base 26 : A=0 =====> Z=25 Donc que des lettres.
shaeks Messages postés 26 Date d'inscription mercredi 27 juillet 2005 Statut Non membre Dernière intervention 19 août 2023
8 janv. 2012 à 19:48
@aubert007 : Je ne crois que c'est possible pour la base 26 de 4 caractères.
aubert007 Messages postés 1 Date d'inscription samedi 9 février 2008 Statut Membre Dernière intervention 8 janvier 2012
8 janv. 2012 à 19:10
Pk tu n'utilise pas la fonction intégrais de la calculatrice intègrais à windows ?
NHenry Messages postés 15114 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 4 mai 2024 159
8 janv. 2012 à 01:56
Bonsoir,

Je n'ai pas compris pourquoi tu n'utilises pas les fonctions intégrées pour convertir l'hexa en décimal ?

Val("&h7F0")
Hex$(...)
Rejoignez-nous