[T] Convertisseur Texte <=> Hexa

Partagez vos scripts, et vos applications AutoIt.
Règles du forum
.
Répondre
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11773
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

[T] Convertisseur Texte <=> Hexa

#1

Message par Tlem »

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.

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
Répondre