flint
-
29 avril 2001 à 16:02
cs_thitoune
Messages postés124Date d'inscriptionmardi 19 février 2002StatutMembreDernière intervention 7 mars 2004
-
9 mars 2003 à 17:49
Cette discussion concerne un article du site. Pour la consulter dans son contexte d'origine, cliquez sur le lien ci-dessous.
cs_thitoune
Messages postés124Date d'inscriptionmardi 19 février 2002StatutMembreDernière intervention 7 mars 20042 9 mars 2003 à 17:49
On voit bien que tu t'es donné du mal mais malheureusement ce n'est pas la solution optimale. Vu que j'ai été amené à développer ce type de fonction je te la passe :
Private Function convert(s As String) As Integer
Dim temp As Integer
s = LCase(s)
convert = 0
temp = Asc(Left$(Right$(s, 1), 1))
temp = temp - 48
If temp > 9 Then temp = temp - 39
convert = convert + temp
For i = 2 To Len(s)
temp = Asc(Left$(Right$(s, i), 1))
temp = temp - 48
If temp > 9 Then temp = temp - 39
convert = convert + temp * 16 ^ (i - 1)
Next i
End Function
Justement j'ai cherché l'algo pour cette function assez longtemps mais je ne suis pas calé en traitement de donné comme ça alors je n'ai pas trouvé. Ceci étant, je te remercie de ton tuyau qui m'est fort utile.
Merci beaucoup.
@++
(je préfère quand tu es comme ça. C'est cool.)
1. Apte, propre à construire, à créer. 2. Positif. Des propositions constructives.
Alors voila une critique constructive et bien écrite et tout et tout! Ta procédure HEX2STR, c'est limite mort de rire, crise d'étouffement... Heureusement que l'aide soignante était dans le coin avec un verre d'eau, j'ai faillit y rester dis! Bon alors puisque ça doit être constructif, voila je vais te refiler un tuyau... plutot que de tester tous les caractères 1 par 1, une simple ( mais néanmoins efficace ) soustraction sur le codes ASCII aurait fait une économie de ... voyons ... 125 lignes! Alors ça si c'est pas de l'optimisation ben dis!
9 mars 2003 à 17:49
Private Function convert(s As String) As Integer
Dim temp As Integer
s = LCase(s)
convert = 0
temp = Asc(Left$(Right$(s, 1), 1))
temp = temp - 48
If temp > 9 Then temp = temp - 39
convert = convert + temp
For i = 2 To Len(s)
temp = Asc(Left$(Right$(s, i), 1))
temp = temp - 48
If temp > 9 Then temp = temp - 39
convert = convert + temp * 16 ^ (i - 1)
Next i
End Function
29 avril 2001 à 18:18
29 avril 2001 à 18:15
29 avril 2001 à 17:48
Public Function HEX2STR(Hex As String) As String
HEX2STR = Chr$(Val(Hex))
End Function
Mémère
29 avril 2001 à 17:23
29 avril 2001 à 17:16
29 avril 2001 à 17:13
Merci beaucoup.
@++
(je préfère quand tu es comme ça. C'est cool.)
29 avril 2001 à 17:11
1. Apte, propre à construire, à créer. 2. Positif. Des propositions constructives.
Alors voila une critique constructive et bien écrite et tout et tout! Ta procédure HEX2STR, c'est limite mort de rire, crise d'étouffement... Heureusement que l'aide soignante était dans le coin avec un verre d'eau, j'ai faillit y rester dis! Bon alors puisque ça doit être constructif, voila je vais te refiler un tuyau... plutot que de tester tous les caractères 1 par 1, une simple ( mais néanmoins efficace ) soustraction sur le codes ASCII aurait fait une économie de ... voyons ... 125 lignes! Alors ça si c'est pas de l'optimisation ben dis!
Mémère
29 avril 2001 à 16:02