[T] Convertisseur Texte <=> Hexa
Posté : mer. 02 janv. 2008 23:41
Message transféré de l'ancien forum.
Auteur : hellboy_21
Date : 23/11/2006
Citation :
Voici un petit convertisseur qui vous permettra de passer du texte à du code hexadécimal et vice versa en quelques clics ! Vous pourrez entre autre ouvrir un fichier comportant du texte ou de l'hexa et bien sur vous pourrez enregistrer le code hexa ou le texte ainsi obtenu dans un fichier texte.
Auteur : hellboy_21
Date : 23/11/2006
Citation :
Voici un petit convertisseur qui vous permettra de passer du texte à du code hexadécimal et vice versa en quelques clics ! Vous pourrez entre autre ouvrir un fichier comportant du texte ou de l'hexa et bien sur vous pourrez enregistrer le code hexa ou le texte ainsi obtenu dans un fichier texte.
Code : Tout sélectionner
#include <GUIConstants.au3>
#include <File.au3>
#include <string.au3>
GUICreate("Texte / Hexadécimal", 500, 535)
Opt("GUIOnEventMode", 1)
$lblTexte = GUICtrlCreateLabel("Texte :", 10, 10)
$txtTexte = GUICtrlCreateEdit("", 10, 30, 480, 200)
$lblHexa = GUICtrlCreateLabel("Hexadécimal :", 10, 240)
$txtHexa = GUICtrlCreateEdit("", 10, 260, 480, 200)
$cmdConvertEnHexa = GUICtrlCreateButton("Texte => Hexadécimal", 10, 470, 150)
GUICtrlSetOnEvent($cmdConvertEnHexa, "convertirEnHexa")
$cmdEffacer = GUICtrlCreateButton("Tout effacer", 200, 470, 100)
GUICtrlSetOnEvent($cmdEffacer, "effacer")
$cmdConvertEnTexte = GUICtrlCreateButton("Hexadécimal => Texte", 340, 470, 150)
GUICtrlSetOnEvent($cmdConvertEnTexte, "convertirEnTexte")
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter")
$cmdSauvegarderEnHexa = GUICtrlCreateButton("Sauvegarder Hexadécimal", 10, 500, 150)
GUICtrlSetOnEvent($cmdSauvegarderEnHexa, "SauvegarderEnHexa")
$cmdOuvrir = GUICtrlCreateButton("Ouvrir un fichier", 200, 500, 100)
GUICtrlSetOnEvent($cmdOuvrir, "ouvrir")
$cmdSauvegarderEnTexte = GUICtrlCreateButton("Sauvegarder Texte", 340, 500, 150)
GUICtrlSetOnEvent($cmdSauvegarderEnTexte, "SauvegarderEnTexte")
GUISetOnEvent($GUI_EVENT_CLOSE, "quitter")
GUICtrlSetState($txtTexte, $GUI_FOCUS)
$texteHexa = ""
GUISetState()
While 1
Sleep(10)
WEnd
Func ouvrir()
If GUICtrlRead($txtTexte) <> "" Or GUICtrlRead($txtHexa) <> "" Then
$choixOuverture = MsgBox(36, "Confirmation d'ouverture de fichier", "Souhaitez-vous ouvrir un fichier bien que du texte ou du code hexadécimal existe déjà ?")
If $choixOuverture = 6 Then
Call("ouvertureFichier")
EndIf
Else
Call("ouvertureFichier")
EndIf
EndFunc ;==>ouvrir
Func ouvertureFichier()
Call("effacer")
$choixFichier = FileOpenDialog("Choisissez le fichier texte à convertir", @MyDocumentsDir, "Fichier texte (*.txt)", 1)
If Not @error Then
$fichier = FileOpen($choixFichier, 0)
SplashTextOn("Travail en cours...", @CR & @LF & "Patientez...", 200, 60)
For $i = 1 To _FileCountLines($choixFichier)
$ligne = FileReadLine($fichier)
If StringIsXDigit($ligne) = 1 Then
GUICtrlSetData($txtHexa, GUICtrlRead($txtHexa) & $ligne & @CR & @LF)
Else
GUICtrlSetData($txtTexte, GUICtrlRead($txtTexte) & $ligne & @CR & @LF)
EndIf
Next
SplashOff()
FileClose($fichier)
EndIf
EndFunc ;==>ouvertureFichier
Func effacer()
GUICtrlSetData($txtTexte, "")
GUICtrlSetData($txtHexa, "")
GUICtrlSetState($txtTexte, $GUI_FOCUS)
EndFunc ;==>effacer
Func convertirEnHexa()
If GUICtrlRead($txtTexte) <> "" Then
If GUICtrlRead($txtHexa) = "" Then
SplashTextOn("Travail en cours...", @CR & @LF & "Patientez...", 200, 60)
GUICtrlSetData($txtHexa, _StringToHex(GUICtrlRead($txtTexte)))
SplashOff()
Else
$choix = MsgBox(36, "Code hexadécimal déjà existant", "Souhaitez-vous convertir le texte malgré le code hexadécimal déjà existant ?")
If $choix = 6 Then
SplashTextOn("Travail en cours...", @CR & @LF & "Patientez...", 200, 60)
GUICtrlSetData($txtHexa, _StringToHex(GUICtrlRead($txtTexte)))
SplashOff()
EndIf
EndIf
Else
MsgBox(64, "Impossible de convertir", "Pour convertir du texte en hexadécimal, vous devez tout d'abord saisir du texte")
EndIf
EndFunc ;==>convertirEnHexa
Func convertirEnTexte()
If GUICtrlRead($txtHexa) <> "" Then
If GUICtrlRead($txtTexte) = "" Then
SplashTextOn("Travail en cours...", @CR & @LF & "Patientez...", 200, 60)
GUICtrlSetData($txtTexte, _HexToString(GUICtrlRead($txtHexa)))
SplashOff()
Else
$choix = MsgBox(36, "Texte déjà existant", "Souhaitez-vous convertir le code hexadécimal malgré le texte déjà existant ?")
If $choix = 6 Then
SplashTextOn("Travail en cours...", @CR & @LF & "Patientez...", 200, 60)
GUICtrlSetData($txtTexte, _HexToString(GUICtrlRead($txtHexa)))
SplashOff()
EndIf
EndIf
Else
MsgBox(64, "Impossible de convertir", "Pour convertir de l'hexadécimal en texte, vous devez tout d'abord saisir du code hexadécimal")
EndIf
EndFunc ;==>convertirEnTexte
Func SauvegarderEnHexa()
If GUICtrlRead($txtHexa) = "" Then
MsgBox(64, "Sauvergarde du code hexadécimal impossible", "Pour effectuer la sauvegarde vous devez avant tout avoir du code hexadécimal")
Else
$texteHexa = "Hexa"
Call("sauvegarder")
EndIf
EndFunc ;==>SauvegarderEnHexa
Func SauvegarderEnTexte()
If GUICtrlRead($txtTexte) = "" Then
MsgBox(64, "Sauvergarde du texte impossible", "Pour effectuer la sauvegarde vous devez avant tout avoir du texte")
Else
$texteHexa = "Texte"
Call("sauvegarder")
EndIf
EndFunc ;==>SauvegarderEnTexte
Func sauvegarder()
$fichierSauvegarde = FileSaveDialog("Choisissez un nom de fichier", @MyDocumentsDir, "Texte (*.txt)", 19, $texteHexa & ".txt")
If Not @error Then
If StringRight($fichierSauvegarde, 4) <> ".txt" Then
$fichierSauvegarde = $fichierSauvegarde & ".txt"
EndIf
If Not FileExists($fichierSauvegarde) Then
_FileCreate($fichierSauvegarde)
EndIf
$fichier = FileOpen($fichierSauvegarde, 2)
If $texteHexa = "Texte" Then
FileWrite($fichier, GUICtrlRead($txtTexte))
Else
FileWrite($fichier, GUICtrlRead($txtHexa))
EndIf
FileClose($fichier)
MsgBox(64, "Sauvegarde effectuée", "La sauvegarde s'est bien déroulée")
EndIf
EndFunc ;==>sauvegarder
Func quitter()
If GUICtrlRead($txtTexte) <> "" Or GUICtrlRead($txtHexa) <> "" Then
$choixOuverture = MsgBox(36, "Fermeture du convertisseur", "Êtes-vous certain de vouloir quitter l'application en cours ?")
If $choixOuverture = 6 Then
Exit
EndIf
Else
Exit
EndIf
EndFunc ;==>quitter