Code : Tout sélectionner
#Include <File.au3>
#Include <Array.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
$w=@DesktopWidth
$h=@DesktopHeight
$vert =0
$hor = 0
$splash=1
Dim $sizedir[5]
$sizedir[0]="xxx"
$sizedir[1]="xxx"
$sizedir[2]="xxx"
if $splash=1 Then
$hgui = GUICreate("GUIVELO",$w,$h, $hor, $vert, $WS_POPUPWINDOW, $WS_EX_TOOLWINDOW)
GUICtrlCreatePic("red.jpg",0,0,@DesktopWidth,@DesktopHeight)
GUICtrlCreatePic("velocigif.gif",0,0,@DesktopWidth,@DesktopHeight)
For $k = 0 To 255 Step 1
Sleep(1)
WinSetTrans("GUIVELO", "", $k)
WinSetOnTop("GUIVELO","",1)
GUISetState(@SW_SHOW, $hgui)
Next
For $k = 255 To 0 Step -1
Sleep(1)
WinSetTrans("GUIVELO", "", $k)
WinSetOnTop("GUIVELO","",1)
Next
GUIDelete($hgui)
Else
EndIf
$gui=GUICreate("RAPTOR - Email Extractor - By Nurza Software",@DesktopWidth-100,@DesktopHeight-100,0,0,BitOR($WS_OVERLAPPEDWINDOW,$WS_MAXIMIZE))
GUICtrlCreateLabel("Dossier qui contient les fichiers à traiter:",50,50)
$inputdir=GUICtrlCreateInput("",300,50,500)
$parcourirdir=GUICtrlCreateButton("Parcourir",850,50,100,24)
$labeldirsize=GUICtrlCreateLabel("Taille du dossier = "&$sizedir[0]&@CRLF&"Nombre de fichiers = "&$sizedir[0]&@CRLF&"Nombre de dossiers = "&$sizedir[0],990,53,500,50)
$go=GUICtrlCreateButton("GO",400,420,@DesktopWidth-800,50)
$progress=GUICtrlCreateProgress(50,500,@DesktopWidth-100,50)
$labelconclusion=GUICtrlCreateLabel("",50,550,@DesktopWidth-100,50)
GUISetState(@SW_SHOW, $gui)
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $parcourirdir
$dossierinput = FileSelectFolder("RAPTOR DOSSIER", "")
if $dossierinput="" Then
Else
GUICtrlSetData($inputdir,$dossierinput)
$sizedir = DirGetSize($dossierinput,1)
If $sizedir[0]<1000 Then
$tailledir=Ceiling($sizedir[0])&" Octets"
ElseIf $sizedir[0]<1000000 Then
$tailledir=Ceiling($sizedir[0]/1000)&" K-Octets"
ElseIf $sizedir[0]<1000000000 Then
$tailledir=Ceiling($sizedir[0]/1000000)&" M-Octets"
ElseIf $sizedir[0]<1000000000000 Then
$tailledir=Ceiling($sizedir[0]/1000000000)&" G-Octets"
Else
$tailledir=" ERROR "
EndIf
GUICtrlSetData($labeldirsize,"Taille du dossier = "&$tailledir&" / "&$sizedir[0]&" OCTETS"&@CRLF&"Nombre de fichiers = "&$sizedir[1]&@CRLF&"Nombre de dossiers = "&$sizedir[2])
EndIf
Case $go
If GUICtrlRead($inputdir)="" Then
MsgBox (0,"","Veuillez spécifier un dossier à tréter !")
Else
$sizedir = DirGetSize(GUICtrlRead($inputdir),1)
If $sizedir[0]<1000 Then
$tailledir=Ceiling($sizedir[0])&" Octets"
ElseIf $sizedir[0]<1000000 Then
$tailledir=Ceiling($sizedir[0]/1000)&" K-Octets"
ElseIf $sizedir[0]<1000000000 Then
$tailledir=Ceiling($sizedir[0]/1000000)&" M-Octets"
ElseIf $sizedir[0]<1000000000000 Then
$tailledir=Ceiling($sizedir[0]/1000000000)&" G-Octets"
Else
$tailledir=" ERROR "
EndIf
GUICtrlSetData($labeldirsize,"Taille du dossier = "&$tailledir&" / "&$sizedir[0]&" OCTETS"&@CRLF&"Nombre de fichiers = "&$sizedir[1]&@CRLF&"Nombre de dossiers = "&$sizedir[2])
extraction("ici.txt",GUICtrlRead($inputdir),$sizedir[0])
EndIf
EndSwitch
WEnd
Func _ArraytUnique(ByRef $aArray, $vDelim = '', $iBase = 1, $iUnique = 1)
If $vDelim = '' Then $vDelim = Chr(01)
Local $sHold
For $iCC = $iBase To UBound($aArray) - 1
If Not StringInStr($vDelim & $sHold, $vDelim & $aArray[$iCC] & $vDelim, $iUnique) Then _
$sHold &= $aArray[$iCC] & $vDelim
Next
Return StringSplit(StringTrimRight($sHold, StringLen($vDelim)), $vDelim)
EndFunc ;==>_ArrayUnique
Func extraction($OutputFile,$FileaList,$sisegloub)
$mailtrouve=0
$sizedufile=0
if FileExists($OutputFile) Then
Else
FileWrite($OutputFile,"")
EndIf
$FileList=_FileListToArray($FileaList)
$sisegloubrest=$sisegloub
For $i=1 to $FileList[0] Step 1
$InputFile=$FileaList&"\"&$FileList[$i]
$File = FileRead($InputFile)
If StringRegExp($File, "@", 0) Then
$aEmail = StringRegExp($File, "([-.\w]+@[-.\w]+\.[\w]{2,4})", 3)
If Not @error Then
$aFilteredEmail = _ArraytUnique($aEmail, '', 0)
Dim $Res=""
For $j = 1 To $aFilteredEmail[0]
$Res = $aFilteredEmail[$j] & @CRLF
$ver=StringInStr($Res, "encarta")
If $ver <> 0 Then
Else
FileWrite($OutputFile, $Res)
$mailtrouve=$mailtrouve+1
EndIf
Next
EndIf
Else
EndIf
$sizedufile = FileGetSize($InputFile)
if @error Then FileWrite("error.txt",$InputFile&@CRLF)
$sisegloubrest=$sisegloubrest-$sizedufile
majconcl($FileList[0],$i,$sisegloubrest,$sizedufile,$mailtrouve,$sisegloub)
Next
GUICtrlSetData($labelconclusion,"Fichiers restants = 0 Taille des fichiers restants = 0 Taille des fichiers trétés = "&$sisegloub&" E-mails trouvés = "&$mailtrouve&" 100 %")
GUICtrlSetData($progress,"100")
MsgBox(0,"",$mailtrouve)
EndFunc
Func majconcl($a,$b,$c,$d,$e,$f)
$fichiersrestants=$a-$b
$tailledesfichiersrestants=$c-$d
$mailfind=$e
$sizetretee=$f-$tailledesfichiersrestants
$percentprogress=Execute("(100/$f)*$sizetretee")
GUICtrlSetData($labelconclusion,"Fichiers restants = "&$fichiersrestants&" Taille des fichiers restants = "&$tailledesfichiersrestants&" Taille des fichiers trétés = "&$sizetretee&" E-mails trouvés = "&$mailfind&" Progression = "&Ceiling($percentprogress)&" %")
GUICtrlSetData($progress,$percentprogress)
EndFunc