Je me permets de vous faire partager ce logiciel qui gère la conversion des langages Ascii, Hexadécimal, Décimal et Binaire.
J'espère que ce logiciel vous plaira dans vos conversions de code, voici a quoi ressemble l'interface du logiciel.
Normalement, j'ai cherché tous les soucis au mauvais fonctionnement du logiciel, alors si vous en trouvez j'aimerais le corriger ou l'améliorer avec vous.
► Afficher le texteAvec la console intégrer
Code : Tout sélectionner
;#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
$Form1 = GUICreate("AscDecHexBin", 489, 599, 195, 135)
$Group1 = GUICtrlCreateGroup("CONVERTISSEUR /ASCII* /DECIMAL* /HEXADECIMAL* /BINAIRE*", 5, 5, 473, 425)
$Edit1 = GUICtrlCreateEdit("", 16, 25, 449, 89)
GUICtrlSetData(-1, "Votre saisie ici")
$Btn1 = GUICtrlCreateButton("CONVERSION", 16, 209, 300, 50, $WS_GROUP)
GUICtrlSetFont(-1, 16, 800, 0, "Comic Sans MS")
$Btn3E = GUICtrlCreateButton("Effacer", 320, 209, 149, 50, $WS_GROUP)
GUICtrlSetFont(-1, 16, 800, 0, "Comic Sans MS")
$Edit2 = GUICtrlCreateEdit("", 16, 268, 449, 89)
GUICtrlSetData(-1, "")
$Label1 = GUICtrlCreateLabel("Ascii", 21, 121, 47, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$ASCii1 = GUICtrlCreateRadio("En decimal", 21, 145, 100, 17)
GUICtrlSetState($ASCii1, $GUI_CHECKED)
$ASCii2 = GUICtrlCreateRadio("En hexadecimal", 21, 166, 100, 17)
$ASCii3 = GUICtrlCreateRadio("En binaire", 21, 187, 100, 17)
$Label2 = GUICtrlCreateLabel("Decimal", 125, 121, 75, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$Dec1 = GUICtrlCreateRadio("En ascii", 125, 145, 100, 17)
$Dec2 = GUICtrlCreateRadio("En hexadecimal", 125, 166, 100, 17)
$Dec3 = GUICtrlCreateRadio("En binaire", 125, 187, 100, 17)
$Label3 = GUICtrlCreateLabel("Hexadecimal", 230, 121, 120, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$Hexa1 = GUICtrlCreateRadio("En ascii", 230, 145, 100, 17)
$Hexa2 = GUICtrlCreateRadio("En decimal", 230, 166, 100, 17)
$Hexa3 = GUICtrlCreateRadio("En binaire", 230, 187, 100, 17)
$Label4 = GUICtrlCreateLabel("Binaire", 360, 119, 67, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$Bin1 = GUICtrlCreateRadio("En ascii", 360, 145, 100, 17)
$Bin2 = GUICtrlCreateRadio("En decimal", 360, 166, 100, 17)
$Bin3 = GUICtrlCreateRadio("En hexadecimal", 360, 187, 100, 17)
$Btn2 = GUICtrlCreateButton("COPIER", 16, 367, 449, 50, $WS_GROUP)
GUICtrlSetFont(-1, 16, 800, 0, "Comic Sans MS")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Edit3 = GUICtrlCreateEdit("", 5, 440, 473, 145)
GUICtrlSetData(-1, "")
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetColor(-1, 0xC0DCC0)
GUICtrlSetBkColor(-1, 0x000000)
GUISetState(@SW_SHOW)
ConsoleWrite(" ____ __ __ " & @LF)
ConsoleWrite("/\ _`\ /\ \ /\ \ " & @LF)
ConsoleWrite("\ \ \L\ \ __ __ \ \ \ ___ ___ ___\ \ \/'\ __ __ ____ " & @LF)
ConsoleWrite(" \ \ _ <'/\ \/\ \ \ \ \ __ / __`\ / __`\ /'___\ \ , < /\ \/\ \ /',__\ " & @LF)
ConsoleWrite(" \ \ \L\ \ \ \_\ \ \ \ \L\ \/\ \L\ \/\ \L\ \/\ \__/\ \ \\`\\ \ \_\ \/\__, `\" & @LF)
ConsoleWrite(" \ \____/\/`____ \ \ \____/\ \____/\ \____/\ \____\\ \_\ \_\/`____ \/\____/" & @LF)
ConsoleWrite(" \/___/ `/___/> \ \/___/ \/___/ \/___/ \/____/ \/_/\/_/`/___/> \/___/ " & @LF)
ConsoleWrite(" /\___/ /\___/ " & @LF)
ConsoleWrite(" \/__/ \/__/ " & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Btn1
_Btn1()
Case $Btn2
_Btn2()
Case $Btn3E
GUICtrlSetData($Edit1, "")
EndSwitch
WEnd
Func _Btn1()
;---------------------------------------------------ASCII EN DECIMAL
If GUICtrlRead($ASCii1) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, "")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = " "
EndIf
$Tab2[$i] = AscW($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message ascii en decimal: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
EndIf
EndIf
;---------------------------------------------------ASCII EN HEXADECIMAL
If GUICtrlRead($ASCii2) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, "")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = " "
EndIf
$Tab2[$i] = Hex(AscW($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message ascii en hexadecimal: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
EndIf
EndIf
;---------------------------------------------------ASCII EN BINAIRE
If GUICtrlRead($ASCii3) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, "")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = " "
EndIf
$Tab2[$i] = Dec2Bin(AscW($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message ascii en binaire: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
EndIf
EndIf
;---------------------------------------------------DECIMAL EN ASCII
If GUICtrlRead($Dec1) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "32"
EndIf
$Tab2[$i] = ChrW($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, "")
If not StringRegExp($TabR1, '[^0123456789]') Then
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message decimal en ascii: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Décimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9")
EndIf
EndIf
EndIf
;---------------------------------------------------DECIMAL EN HEXADECIMAL
If GUICtrlRead($Dec2) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "32"
EndIf
$Tab2[$i] = Hex($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789]') Then
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message decimal en hexadecimal: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Décimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9")
EndIf
EndIf
EndIf
;---------------------------------------------------DECIMAL EN BINAIRE
If GUICtrlRead($Dec3) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "32"
EndIf
$Tab2[$i] = Dec2Bin($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789]') Then
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message decimal en binaire: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Décimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9")
EndIf
EndIf
EndIf
;---------------------------------------------------HEXADECIMAL EN ASCII
If GUICtrlRead($Hexa1) = 1 Then
Global $Saisie
$Saisie = StringUpper(GUICtrlRead($Edit1))
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "20"
EndIf
$Tab2[$i] = ChrW(Dec($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, "")
If not StringRegExp($TabR1, '[^0123456789ABCDEF]') Then
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message hexadecimal en ascii: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Hexadécimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F")
EndIf
EndIf
EndIf
;---------------------------------------------------HEXADECIMAL EN DECIMAL
If GUICtrlRead($Hexa2) = 1 Then
Global $Saisie
$Saisie = StringUpper(GUICtrlRead($Edit1))
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "20"
EndIf
$Tab2[$i] = Dec($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789ABCDEF]') Then
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message hexadecimal en decimal: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Hexadécimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F")
EndIf
EndIf
EndIf
;---------------------------------------------------HEXADECIMAL EN BINAIRE
If GUICtrlRead($Hexa3) = 1 Then
Global $Saisie
$Saisie = StringUpper(GUICtrlRead($Edit1))
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "20"
EndIf
$Tab2[$i] = Dec2Bin(Dec($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789ABCDEF]') Then
GUICtrlSetData($Edit2, $TabR2)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message hexadecimal en binaire: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Hexadécimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F")
EndIf
EndIf
EndIf
;---------------------------------------------------BINAIRE EN ASCII
If GUICtrlRead($Bin1) = 1 Then
Global $CodeBinaire = GUICtrlRead($Edit1)
$Nbr = StringLen($CodeBinaire)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
Global $Bool = True
$Flag1 = StringSplit($CodeBinaire, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "100000"
EndIf
Next
Dim $TabF[$Flag3[1]]
For $a = 0 To $Flag3[1] -1 Step 1
If not StringRegExp($Tab1[$a], '[^01]') Then
$Flag4 = StringSplit($Tab1[$a], "")
$Nbr2 = StringLen($Tab1[$a])
Global $V1 = 1
Dim $Tab2[$Nbr2]
$Tab2[0] = "1"
For $i = 1 To $Nbr2 -1 Step 1
$V1 *= 2
$Tab2[$i] = $V1
Next
$Rtab2 = _ArrayToString($Tab2)
$V1 = 1
Local $V2
For $i = $Flag4[0] To 1 Step -1
$V2 &= $Flag4[$i]
Next
$Flag5 = StringSplit($V2, "")
$V2 = ""
Global $V3
Dim $Tab3[$Nbr2]
For $i = 0 To $Nbr2 -1 Step 1
$Tab3[$i] = $Flag5[$i +1]
If($Tab3[$i] = "1")Then
$V3 += $Tab2[$i]
EndIf
Next
$ChrW = ChrW($V3)
$TabF[$a] = $ChrW
$V3 = ""
Else
$Bool = False
EndIf
Next
If($Bool = True)Then
$ResultatFinal = _ArrayToString($TabF, "")
GUICtrlSetData($Edit2, $ResultatFinal)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message binaire en ascii: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Binaire","Vous devez respecter" & @LF & "les caractères suivant : 0,1")
EndIf
EndIf
EndIf
;---------------------------------------------------BINAIRE EN DECIMAL
If GUICtrlRead($Bin2) = 1 Then
Global $CodeBinaire = GUICtrlRead($Edit1)
$Nbr = StringLen($CodeBinaire)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
Global $Bool = True
$Flag1 = StringSplit($CodeBinaire, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "100000"
EndIf
Next
Dim $TabF[$Flag3[1]]
For $a = 0 To $Flag3[1] -1 Step 1
If not StringRegExp($Tab1[$a], '[^01]') Then
$Flag4 = StringSplit($Tab1[$a], "")
$Nbr2 = StringLen($Tab1[$a])
Global $V1 = 1
Dim $Tab2[$Nbr2]
$Tab2[0] = "1"
For $i = 1 To $Nbr2 -1 Step 1
$V1 *= 2
$Tab2[$i] = $V1
Next
$Rtab2 = _ArrayToString($Tab2)
$V1 = 1
Local $V2
For $i = $Flag4[0] To 1 Step -1
$V2 &= $Flag4[$i]
Next
$Flag5 = StringSplit($V2, "")
$V2 = ""
Global $V3
Dim $Tab3[$Nbr2]
For $i = 0 To $Nbr2 -1 Step 1
$Tab3[$i] = $Flag5[$i +1]
If($Tab3[$i] = "1")Then
$V3 += $Tab2[$i]
EndIf
Next
$TabF[$a] = $V3 & " "
$V3 = ""
Else
$Bool = False
EndIf
Next
If($Bool = True)Then
$ResultatFinal = _ArrayToString($TabF, "")
GUICtrlSetData($Edit2, $ResultatFinal)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message binaire en decimal: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Binaire","Vous devez respecter" & @LF & "les caractères suivant : 0,1")
EndIf
EndIf
EndIf
;---------------------------------------------------BINAIRE EN HEXADECIMAL
If GUICtrlRead($Bin3) = 1 Then
Global $CodeBinaire = GUICtrlRead($Edit1)
$Nbr = StringLen($CodeBinaire)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
Global $Bool = True
$Flag1 = StringSplit($CodeBinaire, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "100000"
EndIf
Next
Dim $TabF[$Flag3[1]]
For $a = 0 To $Flag3[1] -1 Step 1
If not StringRegExp($Tab1[$a], '[^01]') Then
$Flag4 = StringSplit($Tab1[$a], "")
$Nbr2 = StringLen($Tab1[$a])
Global $V1 = 1
Dim $Tab2[$Nbr2]
$Tab2[0] = "1"
For $i = 1 To $Nbr2 -1 Step 1
$V1 *= 2
$Tab2[$i] = $V1
Next
$Rtab2 = _ArrayToString($Tab2)
$V1 = 1
Local $V2
For $i = $Flag4[0] To 1 Step -1
$V2 &= $Flag4[$i]
Next
$Flag5 = StringSplit($V2, "")
$V2 = ""
Global $V3
Dim $Tab3[$Nbr2]
For $i = 0 To $Nbr2 -1 Step 1
$Tab3[$i] = $Flag5[$i +1]
If($Tab3[$i] = "1")Then
$V3 += $Tab2[$i]
EndIf
Next
$hex = Hex("0x" & $V3)
$TabF[$a] = $hex & " "
$V3 = ""
Else
$Bool = False
EndIf
Next
If($Bool = True)Then
$ResultatFinal = _ArrayToString($TabF, "")
GUICtrlSetData($Edit2, $ResultatFinal)
ConsoleWrite("Message: " & $Saisie & @LF & @LF & "Converssion message binaire en hexadecimal: " & $TabR2 & @LF)
ConsoleWrite("-------------------------------------------------------------------------------" & @LF & @LF)
Else
MsgBox(48,"Erreur Binaire","Vous devez respecter" & @LF & "les caractères suivant : 0,1")
EndIf
EndIf
EndIf
EndFunc
Func _Btn2()
GUICtrlSetData($Edit3, "La mémoire près enregistrer : " & GUICtrlRead($Edit2))
ClipPut(GUICtrlRead($Edit2))
EndFunc
Func Dec2Bin($iNumber)
Local $sRet = ""
Do
$sRet = BitAND($iNumber, 1) & $sRet
$iNumber = BitShift($iNumber, 1)
Until $iNumber = 0
Return $sRet
EndFunc
► Afficher le texteSans console intégrer
Code : Tout sélectionner
;#NoTrayIcon
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <Array.au3>
$Form1 = GUICreate("AscDecHexBin", 489, 599, 195, 135)
$Group1 = GUICtrlCreateGroup("CONVERTISSEUR /ASCII* /DECIMAL* /HEXADECIMAL* /BINAIRE*", 5, 5, 473, 425)
$Edit1 = GUICtrlCreateEdit("", 16, 25, 449, 89)
GUICtrlSetData(-1, "Votre saisie ici")
$Btn1 = GUICtrlCreateButton("CONVERSION", 16, 209, 300, 50, $WS_GROUP)
GUICtrlSetFont(-1, 16, 800, 0, "Comic Sans MS")
$Btn3E = GUICtrlCreateButton("Effacer", 320, 209, 149, 50, $WS_GROUP)
GUICtrlSetFont(-1, 16, 800, 0, "Comic Sans MS")
$Edit2 = GUICtrlCreateEdit("", 16, 268, 449, 89)
GUICtrlSetData(-1, "")
$Label1 = GUICtrlCreateLabel("Ascii", 21, 121, 47, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$ASCii1 = GUICtrlCreateRadio("En decimal", 21, 145, 100, 17)
GUICtrlSetState($ASCii1, $GUI_CHECKED)
$ASCii2 = GUICtrlCreateRadio("En hexadecimal", 21, 166, 100, 17)
$ASCii3 = GUICtrlCreateRadio("En binaire", 21, 187, 100, 17)
$Label2 = GUICtrlCreateLabel("Decimal", 125, 121, 75, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$Dec1 = GUICtrlCreateRadio("En ascii", 125, 145, 100, 17)
$Dec2 = GUICtrlCreateRadio("En hexadecimal", 125, 166, 100, 17)
$Dec3 = GUICtrlCreateRadio("En binaire", 125, 187, 100, 17)
$Label3 = GUICtrlCreateLabel("Hexadecimal", 230, 121, 120, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$Hexa1 = GUICtrlCreateRadio("En ascii", 230, 145, 100, 17)
$Hexa2 = GUICtrlCreateRadio("En decimal", 230, 166, 100, 17)
$Hexa3 = GUICtrlCreateRadio("En binaire", 230, 187, 100, 17)
$Label4 = GUICtrlCreateLabel("Binaire", 360, 119, 67, 31)
GUICtrlSetFont(-1, 14, 800, 0, "Comic Sans MS")
$Bin1 = GUICtrlCreateRadio("En ascii", 360, 145, 100, 17)
$Bin2 = GUICtrlCreateRadio("En decimal", 360, 166, 100, 17)
$Bin3 = GUICtrlCreateRadio("En hexadecimal", 360, 187, 100, 17)
$Btn2 = GUICtrlCreateButton("COPIER", 16, 367, 449, 50, $WS_GROUP)
GUICtrlSetFont(-1, 16, 800, 0, "Comic Sans MS")
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Edit3 = GUICtrlCreateEdit("", 5, 440, 473, 145)
GUICtrlSetData(-1, "")
GUICtrlSetFont(-1, 10, 800, 0, "Comic Sans MS")
GUICtrlSetColor(-1, 0xC0DCC0)
GUICtrlSetBkColor(-1, 0x000000)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Btn1
_Btn1()
Case $Btn2
_Btn2()
Case $Btn3E
GUICtrlSetData($Edit1, "")
EndSwitch
WEnd
Func _Btn1()
;---------------------------------------------------ASCII EN DECIMAL
If GUICtrlRead($ASCii1) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, "")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = " "
EndIf
$Tab2[$i] = AscW($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
GUICtrlSetData($Edit2, $TabR2)
EndIf
EndIf
;---------------------------------------------------ASCII EN HEXADECIMAL
If GUICtrlRead($ASCii2) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, "")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = " "
EndIf
$Tab2[$i] = Hex(AscW($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
GUICtrlSetData($Edit2, $TabR2)
EndIf
EndIf
;---------------------------------------------------ASCII EN BINAIRE
If GUICtrlRead($ASCii3) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, "")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = " "
EndIf
$Tab2[$i] = Dec2Bin(AscW($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
GUICtrlSetData($Edit2, $TabR2)
EndIf
EndIf
;---------------------------------------------------DECIMAL EN ASCII
If GUICtrlRead($Dec1) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "32"
EndIf
$Tab2[$i] = ChrW($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, "")
If not StringRegExp($TabR1, '[^0123456789]') Then
GUICtrlSetData($Edit2, $TabR2)
Else
MsgBox(48,"Erreur Décimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9")
EndIf
EndIf
EndIf
;---------------------------------------------------DECIMAL EN HEXADECIMAL
If GUICtrlRead($Dec2) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "32"
EndIf
$Tab2[$i] = Hex($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789]') Then
GUICtrlSetData($Edit2, $TabR2)
Else
MsgBox(48,"Erreur Décimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9")
EndIf
EndIf
EndIf
;---------------------------------------------------DECIMAL EN BINAIRE
If GUICtrlRead($Dec3) = 1 Then
Global $Saisie
$Saisie = GUICtrlRead($Edit1)
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "32"
EndIf
$Tab2[$i] = Dec2Bin($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789]') Then
GUICtrlSetData($Edit2, $TabR2)
Else
MsgBox(48,"Erreur Décimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9")
EndIf
EndIf
EndIf
;---------------------------------------------------HEXADECIMAL EN ASCII
If GUICtrlRead($Hexa1) = 1 Then
Global $Saisie
$Saisie = StringUpper(GUICtrlRead($Edit1))
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "20"
EndIf
$Tab2[$i] = ChrW(Dec($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, "")
If not StringRegExp($TabR1, '[^0123456789ABCDEF]') Then
GUICtrlSetData($Edit2, $TabR2)
Else
MsgBox(48,"Erreur Hexadécimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F")
EndIf
EndIf
EndIf
;---------------------------------------------------HEXADECIMAL EN DECIMAL
If GUICtrlRead($Hexa2) = 1 Then
Global $Saisie
$Saisie = StringUpper(GUICtrlRead($Edit1))
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "20"
EndIf
$Tab2[$i] = Dec($Tab1[$i])
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789ABCDEF]') Then
GUICtrlSetData($Edit2, $TabR2)
Else
MsgBox(48,"Erreur Hexadécimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F")
EndIf
EndIf
EndIf
;---------------------------------------------------HEXADECIMAL EN BINAIRE
If GUICtrlRead($Hexa3) = 1 Then
Global $Saisie
$Saisie = StringUpper(GUICtrlRead($Edit1))
$Nbr = StringLen($Saisie)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
$Flag1 = StringSplit($Saisie, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
Dim $Tab2[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "20"
EndIf
$Tab2[$i] = Dec2Bin(Dec($Tab1[$i]))
Next
$TabR1 = _ArrayToString($Tab1, "")
$TabR2 = _ArrayToString($Tab2, " ")
If not StringRegExp($TabR1, '[^0123456789ABCDEF]') Then
GUICtrlSetData($Edit2, $TabR2)
Else
MsgBox(48,"Erreur Hexadécimal","Vous devez respecter" & @LF & "les caractères suivant : 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F")
EndIf
EndIf
EndIf
;---------------------------------------------------BINAIRE EN ASCII
If GUICtrlRead($Bin1) = 1 Then
Global $CodeBinaire = GUICtrlRead($Edit1)
$Nbr = StringLen($CodeBinaire)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
Global $Bool = True
$Flag1 = StringSplit($CodeBinaire, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "100000"
EndIf
Next
Dim $TabF[$Flag3[1]]
For $a = 0 To $Flag3[1] -1 Step 1
If not StringRegExp($Tab1[$a], '[^01]') Then
$Flag4 = StringSplit($Tab1[$a], "")
$Nbr2 = StringLen($Tab1[$a])
Global $V1 = 1
Dim $Tab2[$Nbr2]
$Tab2[0] = "1"
For $i = 1 To $Nbr2 -1 Step 1
$V1 *= 2
$Tab2[$i] = $V1
Next
$Rtab2 = _ArrayToString($Tab2)
$V1 = 1
Local $V2
For $i = $Flag4[0] To 1 Step -1
$V2 &= $Flag4[$i]
Next
$Flag5 = StringSplit($V2, "")
$V2 = ""
Global $V3
Dim $Tab3[$Nbr2]
For $i = 0 To $Nbr2 -1 Step 1
$Tab3[$i] = $Flag5[$i +1]
If($Tab3[$i] = "1")Then
$V3 += $Tab2[$i]
EndIf
Next
$ChrW = ChrW($V3)
$TabF[$a] = $ChrW
$V3 = ""
Else
$Bool = False
EndIf
Next
If($Bool = True)Then
$ResultatFinal = _ArrayToString($TabF, "")
GUICtrlSetData($Edit2, $ResultatFinal)
Else
MsgBox(48,"Erreur Binaire","Vous devez respecter" & @LF & "les caractères suivant : 0,1")
EndIf
EndIf
EndIf
;---------------------------------------------------BINAIRE EN DECIMAL
If GUICtrlRead($Bin2) = 1 Then
Global $CodeBinaire = GUICtrlRead($Edit1)
$Nbr = StringLen($CodeBinaire)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
Global $Bool = True
$Flag1 = StringSplit($CodeBinaire, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "100000"
EndIf
Next
Dim $TabF[$Flag3[1]]
For $a = 0 To $Flag3[1] -1 Step 1
If not StringRegExp($Tab1[$a], '[^01]') Then
$Flag4 = StringSplit($Tab1[$a], "")
$Nbr2 = StringLen($Tab1[$a])
Global $V1 = 1
Dim $Tab2[$Nbr2]
$Tab2[0] = "1"
For $i = 1 To $Nbr2 -1 Step 1
$V1 *= 2
$Tab2[$i] = $V1
Next
$Rtab2 = _ArrayToString($Tab2)
$V1 = 1
Local $V2
For $i = $Flag4[0] To 1 Step -1
$V2 &= $Flag4[$i]
Next
$Flag5 = StringSplit($V2, "")
$V2 = ""
Global $V3
Dim $Tab3[$Nbr2]
For $i = 0 To $Nbr2 -1 Step 1
$Tab3[$i] = $Flag5[$i +1]
If($Tab3[$i] = "1")Then
$V3 += $Tab2[$i]
EndIf
Next
$TabF[$a] = $V3 & " "
$V3 = ""
Else
$Bool = False
EndIf
Next
If($Bool = True)Then
$ResultatFinal = _ArrayToString($TabF, "")
GUICtrlSetData($Edit2, $ResultatFinal)
Else
MsgBox(48,"Erreur Binaire","Vous devez respecter" & @LF & "les caractères suivant : 0,1")
EndIf
EndIf
EndIf
;---------------------------------------------------BINAIRE EN HEXADECIMAL
If GUICtrlRead($Bin3) = 1 Then
Global $CodeBinaire = GUICtrlRead($Edit1)
$Nbr = StringLen($CodeBinaire)
If($Nbr <= 0)Then
MsgBox(48,"Erreur","Le champs est vide")
Else
Global $Bool = True
$Flag1 = StringSplit($CodeBinaire, " ")
$Flag2 = _ArrayToString($Flag1, " ")
$Flag3 = StringSplit($Flag2, " ")
Dim $Tab1[$Flag3[1]]
For $i = 0 To $Flag3[1] -1 Step 1
$Tab1[$i] = $Flag1[$i +1]
If($Flag1[$i +1] = "")Then
$Tab1[$i] = "100000"
EndIf
Next
Dim $TabF[$Flag3[1]]
For $a = 0 To $Flag3[1] -1 Step 1
If not StringRegExp($Tab1[$a], '[^01]') Then
$Flag4 = StringSplit($Tab1[$a], "")
$Nbr2 = StringLen($Tab1[$a])
Global $V1 = 1
Dim $Tab2[$Nbr2]
$Tab2[0] = "1"
For $i = 1 To $Nbr2 -1 Step 1
$V1 *= 2
$Tab2[$i] = $V1
Next
$Rtab2 = _ArrayToString($Tab2)
$V1 = 1
Local $V2
For $i = $Flag4[0] To 1 Step -1
$V2 &= $Flag4[$i]
Next
$Flag5 = StringSplit($V2, "")
$V2 = ""
Global $V3
Dim $Tab3[$Nbr2]
For $i = 0 To $Nbr2 -1 Step 1
$Tab3[$i] = $Flag5[$i +1]
If($Tab3[$i] = "1")Then
$V3 += $Tab2[$i]
EndIf
Next
$hex = Hex("0x" & $V3)
$TabF[$a] = $hex & " "
$V3 = ""
Else
$Bool = False
EndIf
Next
If($Bool = True)Then
$ResultatFinal = _ArrayToString($TabF, "")
GUICtrlSetData($Edit2, $ResultatFinal)
Else
MsgBox(48,"Erreur Binaire","Vous devez respecter" & @LF & "les caractères suivant : 0,1")
EndIf
EndIf
EndIf
EndFunc
Func _Btn2()
GUICtrlSetData($Edit3, "La mémoire près enregistrer : " & GUICtrlRead($Edit2))
ClipPut(GUICtrlRead($Edit2))
EndFunc
Func Dec2Bin($iNumber)
Local $sRet = ""
Do
$sRet = BitAND($iNumber, 1) & $sRet
$iNumber = BitShift($iNumber, 1)
Until $iNumber = 0
Return $sRet
EndFunc