Code : Tout sélectionner
#Region ;**** Directives created by AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=ciseau.ico
#AutoIt3Wrapper_outfile=dicocut.exe
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <Array.au3>
#include <File.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
Local $dico11 = 2, $dico21 = 6, $dico31 = 9, $dico12 = 5, $dico22 = 8, $dico32 = "*", $open, $contenu
$main_window = GUICreate("Dictionary sort for Hung Game", 400, 170, -1, -1)
GUISetFont(10, 800, 0, "MS Sans Serif")
GUICtrlCreateLabel("Select your dictionary :",5,10,300,20)
$File = GUICtrlCreateInput("", 170, 10,190, 20)
GUICtrlCreateLabel("Minimum",75,45,70,30)
GUICtrlCreateLabel("Maximum",173,45,70,30)
$Info = GUICtrlCreateLabel("",255,45,300,30)
$NbrsWords = GUICtrlCreateLabel("",145,172,80,30)
GUICtrlCreateLabel("Number of words :",10,140,150,30)
For $i=1 to 3
GUICtrlCreateLabel("dico" & $i, 10, 50+20*$i,50,30)
Assign("MinDico" & $i & "_Min", GUICtrlCreateButton("<",70, 48+$i*20, 20, 20,0))
Assign("MinDico" & $i & "_Max", GUICtrlCreateButton("<",170, 48+$i*20, 20, 20,0))
Assign("MaxDico" & $i & "_Min", GUICtrlCreateButton(">",120, 48+$i*20, 20, 20,0))
Assign("MaxDico" & $i & "_Max", GUICtrlCreateButton(">",220, 48+$i*20, 20, 20,0))
Assign("ValMinDico" & $i, GUICtrlCreateInput(Eval("dico" & $i & "1"), 95, 48+$i*20, 20, 20))
Assign("ValMaxDico" & $i, GUICtrlCreateInput(Eval("dico" & $i & "2"), 195, 48+$i*20, 20, 20))
Next
$Choix = GUICtrlCreateButton("...",370, 10, 20, 20,0)
$Annuler = GUICtrlCreateButton("Cancel", 300, 135, 75, 25, 0)
$OK = GUICtrlCreateButton("OK", 200, 135, 75, 25, 0)
GUISetState(@SW_SHOW)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE, $Annuler ; Si la fenêtre est fermée ou si le bouton annulé est cliqué.
Exit
Case $Choix ; Si le bouton ... à été cliqué.
$Fichier = FileOpenDialog("Select a files please !", @ScriptDir, "File asc (*.txt)", 1)
If $Fichier <> "" Then GUICtrlSetData($File, $Fichier) ; Si le nom du fichier n'est pas vide, on attribue ca valeur au champ de l'input.
Global $TotalOfWords = _FileCountLines ($Fichier)
GUICtrlSetData($NbrsWords,$TotalOfWords)
Case $MinDico1_Min
If $dico11 = 2 Then;test empéchant une valeur < 2
$dico11 = 2
Else
$dico11 -= 1
EndIf
GUICtrlSetData($ValMinDico1, $dico11)
Case $MaxDico1_Min
$dico11 += 1
GUICtrlSetData($ValMinDico1, $dico11)
Case $MinDico2_Min
$dico21 -= 1
GUICtrlSetData($ValMinDico2, $dico21)
Case $MaxDico2_Min
$dico21 += 1
GUICtrlSetData($ValMinDico2, $dico21)
Case $MinDico3_Min
$dico31 -= 1
GUICtrlSetData($ValMinDico3, $dico31)
Case $MaxDico3_Min
$dico31 += 1
GUICtrlSetData($ValMinDico3, $dico31)
Case $MinDico1_Max
If $dico12 = 2 Then;test empéchant une valeur < 2
$dico12 = 2
Else
$dico12 -= 1
EndIf
GUICtrlSetData($ValMaxDico1, $dico12)
Case $MaxDico1_Max
$dico12 += 1
GUICtrlSetData($ValMaxDico1, $dico12)
Case $MinDico2_Max
$dico22 -= 1
GUICtrlSetData($ValMaxDico2, $dico22)
Case $MaxDico2_Max
$dico22 += 1
GUICtrlSetData($ValMaxDico2, $dico22)
Case $MinDico3_Max
$dico32 -= 1
GUICtrlSetData($ValMaxDico3, $dico32)
Case $MaxDico3_Max
$dico32 += 1
GUICtrlSetData($ValMaxDico3, $dico32)
Case $OK ; Si le bouton OK à été cliqué.
$contenu=FileRead(GUICtrlRead($File))
If Not @error Then
GUICtrlSetData($Info,"Cutting is running !!!")
For $i=1 to 3
$open = FileOpen("Dico" & $i, 42)
$liste = StringRegExp($contenu, "(?m)(?x)^(\W{" & Eval("Dico" & $i & "1") & "," & Eval("Dico" & $i & "2") & "})$", 3)
GUICtrlCreateLabel("==> " & UBound($liste) & " words", 270, 48+20*$i)
If IsArray($liste) Then FileWrite($open, _ArrayToString($liste, ""))
FileClose($open)
Next
EndIf
EndSwitch
Wend