NHenry
Messages postés15114Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 4 mai 2024
-
8 janv. 2012 à 01:56
perceval_59
Messages postés18Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention17 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.
perceval_59
Messages postés18Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention17 septembre 2020 3 avril 2013 à 14:01
Autant pour moi (String et Double)
perceval_59
Messages postés18Date d'inscriptionmardi 30 décembre 2003StatutMembreDernière intervention17 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
shaeks
Messages postés26Date d'inscriptionmercredi 27 juillet 2005StatutNon membreDernière intervention19 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és3253Date d'inscriptionjeudi 26 novembre 2009StatutMembreDernière intervention 3 décembre 201957 9 janv. 2012 à 09:32
Renfield
Messages postés17287Date d'inscriptionmercredi 2 janvier 2002StatutModérateurDernière intervention27 septembre 202174 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és26Date d'inscriptionmercredi 27 juillet 2005StatutNon membreDernière intervention19 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és15114Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 4 mai 2024159 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és26Date d'inscriptionmercredi 27 juillet 2005StatutNon membreDernière intervention19 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és26Date d'inscriptionmercredi 27 juillet 2005StatutNon membreDernière intervention19 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és1Date d'inscriptionsamedi 9 février 2008StatutMembreDerniè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és15114Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention 4 mai 2024159 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 ?
3 avril 2013 à 14:01
3 avril 2013 à 13:59
'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
14 janv. 2012 à 22:43
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,
9 janv. 2012 à 09:32
j'ai trouvé dans les archives
http://groupes.codes-sources.com/article-hexavigesimal-93296.aspx
9 janv. 2012 à 07:35
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
9 janv. 2012 à 01:08
8 janv. 2012 à 20:38
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.
8 janv. 2012 à 19:50
8 janv. 2012 à 19:48
8 janv. 2012 à 19:10
8 janv. 2012 à 01:56
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$(...)