Page 1 sur 1
string hexa vers valeur decimal marche pas
Publié : dim. 25/janv./2004 20:40
par Patrick88
comprends pas ?
b.b = 15
Debug b
a$ = Hex(b)
Debug a$
a$ = "$"+a$
Debug a$
c.b = Val(a$)
Debug c ; ---> renvoie 0 ? pourquoi ???
; que je mette le $ ou pas toujours = à 0 ???
d = $F
Debug d ; renvoie 15
Patrick
Publié : dim. 25/janv./2004 20:50
par comtois
Syntaxe
Resultat = Val(Chaine$)
Description
Convertit une chaîne en une valeur numérique. La chaîne doit être un entier au format décimal.
Sinon j'ai déjà vu des codes qui faisaient ce que tu veux , je ne sais plus si c'est sur le forum anglais ou dans codearchiv .
Publié : lun. 26/janv./2004 14:45
par brossden
Bonjour
Il est tout à fait normal que :
a.b=$F donne 15 dans a.b car $ peut se comparer à une fonction qui range la valeur F hexa dans a.
La syntaxe Val("$F") ou Val(a$) quand a$="$F" renvoie la valeur de la chaine "$F" et non la valeur de la fonction $F !
Publié : lun. 26/janv./2004 15:42
par brossden
si tu veux obtenir ce que tu souhaite il te faut ecrire une Fonction
Essaye par example ceci :
Code : Tout sélectionner
Procedure HexaVersDecimal(MotHexa.s)
MotHexa=UCase(MotHexa)
For n=Len(MotHexa) To 1 Step -1
Position+1
ValeurDecimale.b = Asc(Mid(MotHexa,position,1))-48
If ValeurDecimale.b > 9 : ValeurDecimale - 7 :EndIf
ValeurDeRetour.l + (Pow(16,n-1) * ValeurDecimale)
Next
ProcedureReturn valeur=valeurderetour
EndProcedure
b.b = 15
Debug b
a$ = Hex(b)
Debug a$
c.b = HexaVersDecimal(a$)
Debug c
d = $F
Debug d ; renvoie 15
; Vérification pour un grand Nombre comme "FA2D1E9"
Debug $FA2D1E9
a$="FA2D1E9"
Debug HexaVersDecimal(a$)
; Tout va bien
Publié : lun. 26/janv./2004 17:52
par Patrick88
ok merci
Patrick