Page 1 sur 1

ValH (conversion chaine hexa vers valeur)

Publié : mar. 13/avr./2004 2:00
par ZapMan
PureBasic a une fonction Val et ValF mais pas de ValH pour récupérer la valeur d'une chaine de caractères représentant une valeur hexadecimal.
En fait, ValH doit faire exactement le contraire de "Hex".
Voilà mon code :

Code : Tout sélectionner

Procedure ValH(hs$)
; Zapman
; à partir d'une procédure de El Choni
; From a El Choni proc
  result = 0
  p=0
  d=1
  If Left(hs$,1)="$"
    d=2
  EndIf 
  For t = Len(hs$) To d Step -1
    ByteValue = Asc(UCase(Mid(hs$,t,1))) 
    If ByteValue>'9' 
      If ByteValue>'F' 
        ByteValue-87 
      Else 
        ByteValue-55 
      EndIf 
    Else 
      ByteValue-48 
    EndIf
    result = result + (ByteValue<<(4*p))
    p +1
  Next 
  ProcedureReturn result
EndProcedure

Debug valH("$FF")

Publié : mar. 13/avr./2004 3:14
par Chris
J'ai plus court:

Code : Tout sélectionner

Debug $FF
:roll:

Chris :)

Publié : mar. 13/avr./2004 10:17
par Le Soldat Inconnu
c vrai que cette fonction manque, j'en ai réguliérement besoin :wink:

Publié : mar. 13/avr./2004 13:59
par ZapMan
Hé, Chris, sur mon PC, Debug $FF affiche 254,9999
alors que mon Debug ValH("$FF") affiche 255

Ton code est plus court que le mien mais il a l'air buggé (j'ai pas bien cherché où... c'est compliqué, pffff...) C'est peut-être parce que je tourne sur XP et toi sur 98 ?? Ou alors j'ai pas la bonne version de DLL ? T'es en clavier AZERTY ou QWERTY ?? :wink:

Si ça vient de ton programme, fais gaffe ! Si tu fais un bug à chaque ligne de code, ça doit craindre, tes programmes ! :lol: :lol:

Publié : mar. 13/avr./2004 14:11
par Chris
Hé, Chris, sur mon PC, Debug $FF affiche 254,9999
alors que mon Debug ValH("$FF") affiche 255
T'est sur que c'est pas ton PC qui est buggé ! 8O
Parce que sur le mien, ça affiche bien 255 :lol:

Non, mais c'est vrai que ça peut certainement etre utile, cette fonction.
Si ça vient de ton programme, fais gaffe ! Si tu fais un bug à chaque ligne de code, ça doit craindre, tes programmes !
Ben oui, c'est pour ça que je fais peu de programmes, je passe plus de temps à chasser les bugs qu'à faire les codes :lol:

PS: J'espère que tu as pris mon petit bout de code comme une plaisanterie :)
Je préfère prévenir, vu l'ambiance chaleureuse qui règne actuellement sur le forum :? :wink:

Chris :)

Publié : mar. 13/avr./2004 22:51
par ZapMan
Absolument.
Et je suis content que tu ai pris ma réponse comme une plaisanterie.
On va pas resté coincé du c.. sous pretexte que certains se prennent un peu trop la tête, non ?

Top là, mon pote, on est des Bug Brother.

Publié : mer. 14/avr./2004 8:19
par cederavic
allez jeter un coup d'oeil sur le musé, sa deconnai sans cesse sans pour autant ce prendre la tete :)