HEX() vers CHR()

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Avatar de l’utilisateur
venom
Messages : 3138
Inscription : jeu. 29/juil./2004 16:33
Localisation : Klyntar
Contact :

HEX() vers CHR()

Message par venom »

bonjour,

voila je commence a me mélangé les pinceaux avec tout ces commandes strings()

donc j'ai voulu faire un programme qui convertis les chr() donc (abcd....) en hexadécimal.
sa c'est fait, mais le problème c'est que je n'arrive pas a refaire l'effet inverse :lol: . donc si quelqu'un pourrai y jeter un oeuil sa serai sympa.

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #Frame3D_0
  #String_0
  #Button_0
  #String_1
  #Frame3D_1
  #String_2
  #Button_1
  #String_3
EndEnumeration

  If OpenWindow(#Window_0, 0, 0, 435, 135, "Hexa Reverse Text",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    If CreateGadgetList(WindowID(#Window_0))
      Frame3DGadget(#Frame3D_0, 10, 10, 200, 115, "Hexa en texte", #PB_Frame3D_Double)
      StringGadget(#String_0, 20, 30, 180, 20, "65 73 73 61 69 65 ")
      ButtonGadget(#Button_0, 20, 60, 180, 20, "convertir")
      StringGadget(#String_1, 20, 90, 180, 20, "", #PB_String_ReadOnly)
      Frame3DGadget(#Frame3D_1, 225, 10, 200, 115, "Texte en hexa", #PB_Frame3D_Double)
      StringGadget(#String_2, 235, 30, 180, 20, "essaie")
      ButtonGadget(#Button_1, 235, 60, 180, 20, "convertir")
      StringGadget(#String_3, 235, 90, 180, 20, "", #PB_String_ReadOnly)
      
    EndIf
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget 
      Select EventGadget()
      
       Case #Button_0
        Texte$ = GetGadgetText(#String_0)
         Valeur$=""
        For i=1 To Len(texte$)
         Resultat$ = StringField(texte$, i, " ")
          Valeur$=Valeur$+Chr(Val(Resultat$))
        Next i
        SetGadgetText(#String_1, Valeur$)

       Case #Button_1
        Texte$ = GetGadgetText(#String_2)
         Valeur$=""
        For i = 1 To Len(Texte$)
         ValeurASCII = Asc(Mid(Texte$,i,1))
          Valeur$ = Valeur$ + Str(Val(Hex(ValeurASCII)))+" "
        Next
        SetGadgetText(#String_3, Valeur$)
      
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
voila

ps: pour les valeurs, je me sert des tableaux ci-dessous:
ASCII1
ASCII2




@++
Windows 10 x64, PureBasic 5.73 x86 & x64
GPU : radeon HD6370M, CPU : p6200 2.13Ghz
Avatar de l’utilisateur
Ar-S
Messages : 9540
Inscription : dim. 09/oct./2005 16:51
Contact :

Message par Ar-S »

Je n'ai pas l'impression que la version conversion ASCII to DEC fonctionne vu ce que ça affiche.

Pour l'hex => dec, dans la droopy libs tu as une fonction toute faite.

Code : Tout sélectionner

Hex2Dec("FF")
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
PAPIPP
Messages : 534
Inscription : sam. 23/févr./2008 17:58

Message par PAPIPP »

Pour convertir de l' Hexa en ASCII val("$FF")

Code : Tout sélectionner

;- Window Constants
Enumeration
  #Window_0
EndEnumeration

;- Gadget Constants
Enumeration
  #Frame3D_0
  #String_0
  #Button_0
  #String_1
  #Frame3D_1
  #String_2
  #Button_1
  #String_3
EndEnumeration

  If OpenWindow(#Window_0, 0, 0, 435, 135, "Hexa Reverse Text",  #PB_Window_SystemMenu | #PB_Window_MinimizeGadget | #PB_Window_TitleBar | #PB_Window_ScreenCentered )
    If CreateGadgetList(WindowID(#Window_0))
      Frame3DGadget(#Frame3D_0, 10, 10, 200, 115, "Hexa en texte", #PB_Frame3D_Double)
      StringGadget(#String_0, 20, 30, 180, 20, "65 73 73 61 69 65 ")
      ButtonGadget(#Button_0, 20, 60, 180, 20, "convertir")
      StringGadget(#String_1, 20, 90, 180, 20, "", #PB_String_ReadOnly)
      Frame3DGadget(#Frame3D_1, 225, 10, 200, 115, "Texte en hexa", #PB_Frame3D_Double)
      StringGadget(#String_2, 235, 30, 180, 20, "essaie")
      ButtonGadget(#Button_1, 235, 60, 180, 20, "convertir")
      StringGadget(#String_3, 235, 90, 180, 20, "", #PB_String_ReadOnly)
     
    EndIf
  EndIf

  Repeat
   EventID = WaitWindowEvent()
    If EventID = #PB_Event_Gadget
      Select EventGadget()
     
       Case #Button_0
        Texte$ = GetGadgetText(#String_0)
         Valeur$=""
        For i=1 To Len(texte$)
         Resultat$ = "$"+StringField(texte$, i, " "); ici $ devant la chaine Hexa
          Valeur$=Valeur$+Chr(Val(Resultat$))
        Next i
        SetGadgetText(#String_1, Valeur$)

       Case #Button_1
        Texte$ = GetGadgetText(#String_2)
         Valeur$=""
        For i = 1 To Len(Texte$)
         ValeurASCII = Asc(Mid(Texte$,i,1))
          Valeur$ = Valeur$ + Str(Val(Hex(ValeurASCII)))+" "
        Next
        SetGadgetText(#String_3, Valeur$)
     
      EndSelect
    EndIf
  Until EventID = #PB_Event_CloseWindow
et ci dessous un prg test pour vérifier

Code : Tout sélectionner

; conversion hexa_ dec
a.l=$aa
B.l=$FF
Debug a*b
Debug $AA
Debug $FF
Debug a
Debug b
Debug "======================="
aa$="$AA"
bb$="$FF"
; Conversion hexa _dec
Debug Val(aa$)
Debug Val(bb$)
Debug Val(aa$)*Val(bb$)
Debug aa$
Debug bb$
; conversion en présentation hexa mais sans '$'xx pouvant faire croire à du décimal
Debug Hex(a)
Debug Hex(b)


Debug "======================= C Q F D =============================="






Répondre