ValH (conversion chaine hexa vers valeur)

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

ValH (conversion chaine hexa vers valeur)

Message 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")
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message par Chris »

J'ai plus court:

Code : Tout sélectionner

Debug $FF
:roll:

Chris :)
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Message par Le Soldat Inconnu »

c vrai que cette fonction manque, j'en ai réguliérement besoin :wink:
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message 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:
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Avatar de l’utilisateur
Chris
Messages : 3731
Inscription : sam. 24/janv./2004 14:54
Contact :

Message 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 :)
Avatar de l’utilisateur
ZapMan
Messages : 460
Inscription : ven. 13/févr./2004 23:14
Localisation : France
Contact :

Message 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.
Tout obstacle est un point d'appui potentiel.

Bibliothèques PureBasic et autres codes à télécharger :https://www.editions-humanis.com/downlo ... ads_FR.htm
Avatar de l’utilisateur
cederavic
Messages : 1338
Inscription : lun. 09/févr./2004 23:38
Localisation : Bordeaux

Message par cederavic »

allez jeter un coup d'oeil sur le musé, sa deconnai sans cesse sans pour autant ce prendre la tete :)
Répondre