[EX] Convertisseur Ascii, Décimal, Hexadécimal, Binaire
Posté : sam. 17 août 2013 22:16
par loockys
Bonjour tout le monde
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.
Edit : Mise à jour le 19/08/2013
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