Code : Tout sélectionner
#Include <FTPEx.au3>
#include '7Zip.au3'
#include <File.au3>
#include <GUIConstantsEx.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <ComboConstants.au3>
#include <DateTimeConstants.au3>
#include <ButtonConstants.au3>
#include <EditConstants.au3>
;############################################
;############# Information ftp ##############
;############################################
#Region ### START Koda GUI section ### Form=
$Form1 = GUICreate("", 398, 142, 300, 150)
$Input1 = GUICtrlCreateInput("", 16, 32, 185, 21)
$Input2 = GUICtrlCreateInput("", 208, 32, 185, 21, BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Input3 = GUICtrlCreateInput("", 16, 88, 185, 21)
$Label1 = GUICtrlCreateLabel("Nom D'utilisateur", 16, 8, 185, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("Mot de passe", 208, 8, 182, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label3 = GUICtrlCreateLabel("Serveur Ftp", 16, 64, 185, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Label4 = GUICtrlCreateLabel("Chemin", 208, 64, 185, 20, $SS_CENTER)
GUICtrlSetFont(-1, 10, 400, 0, "MS Sans Serif")
$Input4 = GUICtrlCreateInput("/", 208, 88, 185, 21)
$Checkbox1 = GUICtrlCreateCheckbox("Sauvegarder les informations", 16, 120, 185, 17)
$Button1 = GUICtrlCreateButton("Ok", 320, 112, 75, 25)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
If FileExists("ftp_config.ini") Then
GUICtrlSetData($Input1,IniRead("ftp_config.ini","ftp","user",""))
GUICtrlSetData($Input2,IniRead("ftp_config.ini","ftp","pass",""))
GUICtrlSetData($Input3,IniRead("ftp_config.ini","ftp","serveur",""))
GUICtrlSetData($Input4,IniRead("ftp_config.ini","ftp","chemin","/"))
GUICtrlSetState($Checkbox1,$GUI_CHECKED)
EndIf
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $Button1
If GUICtrlRead($Checkbox1)=$GUI_CHECKED Then
IniWrite ( "ftp_config.ini", "ftp", "user", GUICtrlRead($Input1) )
IniWrite ( "ftp_config.ini", "ftp", "pass", GUICtrlRead($Input2) )
IniWrite ( "ftp_config.ini", "ftp", "serveur", GUICtrlRead($Input3) )
IniWrite ( "ftp_config.ini", "ftp", "chemin", GUICtrlRead($Input4) )
ElseIf FileExists("ftp_config.ini") Then
FileDelete("ftp_config.ini")
EndIf
ExitLoop
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
$user=GUICtrlRead($Input1)
$pass=GUICtrlRead($Input2)
$ftp=GUICtrlRead($Input3)
$cheminfichierzip=GUICtrlRead($Input4)
GUIDelete($Form1)
;###############################################
;############ Gui de chargement ################
;###############################################
$Form1 = GUICreate("", 183, 60, 1086, 3)
$Label1 = GUICtrlCreateLabel("", 5, 8, 172, 24, BitOR($SS_CENTER,$WS_BORDER,$SS_CENTERIMAGE))
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
$Label2 = GUICtrlCreateLabel("", 5, 40, 172, 24, $SS_CENTER)
GUICtrlSetFont(-1, 8, 400, 0, "MS Sans Serif")
GUISetState(@SW_SHOW)
;########################################################
;##### Récupération des fichiers ftp sur le serveur #####
;########################################################
GUICtrlSetData($Label1,"Récupération des fichiers ftp sur le serveur")
If FileExists('fichier zip')=0 Then DirCreate('fichier xml') ; Création du dossier si il n'existe pas
$Open = _FTP_Open('Mon serveur ftp')
$Conn = _FTP_Connect($Open, $ftp, $user, $pass)
Local $search
$file=_FTP_FindFileFirst($Conn,$cheminfichierzip,$search)
While UBound($file)>9
GUICtrlSetData($Label2,$file[10])
_FTP_FileGet($Conn, $cheminfichierzip & $file[10] , 'fichier xml\' & $file[10])
_FTP_FileDelete($Conn, $cheminfichierzip & $file[10])
$file=_FTP_FindFileNext($search)
WEnd
_FTP_FindFileClose($search)
$Ftpc = _FTP_Close($Open)
;########################################################
;############ Récupération des fichiers xml #############
;########################################################
GUICtrlSetData($Label1,"Décompression des fichiers xml")
$search=FileFindFirstFile("fichier xml\*.zip")
$file=FileFindNextFile($search)
While @error <> 1
GUICtrlSetData($Label2,$file)
$nomdir=StringLeft($file,StringLen($file)-4)
DirCreate('fichier xml\' & $nomdir)
_7ZIPExtract(0, 'fichier xml\' & $file , 'fichier xml\' & $nomdir)
FileDelete("fichier xml\" & $file)
$search2=FileFindFirstFile("fichier xml\" & $nomdir & '\*.zip')
$file2=FileFindNextFile($search2)
While @error <> 1
GUICtrlSetData($Label2,'fichier xml\' & $nomdir & '\' & $file2)
_7ZIPExtract(0, 'fichier xml\' & $nomdir & '\' & $file2 , 'fichier xml\' & $nomdir)
FileDelete('fichier xml\' & $nomdir & '\' & $file2)
$file2=FileFindNextFile($search2)
WEnd
FileClose($search2)
$file=FileFindNextFile($search)
WEnd
FileClose($search)
FileClose($Open)
;##############################################################
;################ Récupération des données ####################
;##############################################################
GUICtrlSetData($Label1,"Récupération des données")
$minimax=''
Global $IntSolIrr[5]=['','','','','']
Global $TmpMdulC[5]=['','','','','']
Global $ETotal[7]=['','','',0,0,'','']
Global $Pac[7]=['','','',0,0,'','']
$search=FileFindFirstFile("fichier xml\*.*")
$file=FileFindNextFile($search)
While @error <> 1
$search2=FileFindFirstFile("fichier xml\" & $file & '\*.xml')
$file2=FileFindNextFile($search2)
While @error <> 1
$IntSolIrr[2]=''
$TmpMdulC[2]=''
$ETotal[2]=''
$Etotal[4]=0
$Etotal[3]=0
$Pac[2]=''
$Pac[4]=0
$Pac[3]=0
If StringLeft($file2,4) <> 'Mean' Then
FileDelete("fichier xml\" & $file & "\" & $file2)
Else
$i=1
$Open=FileOpen("fichier xml\" & $file & "\" & $file2,0)
Do
$section=''
$ligne=FileReadLine($Open, $i)
If StringInStr($ligne,"SENS0500:6472:IntSolIrr") <> 0 Then
$section="IntSolIrr"
ElseIf StringInStr($ligne,"SENS0500:6472:TmpMdul C") <> 0 Then
$section='TmpMdul C'
ElseIf StringInStr($ligne,"WR7KTL12:2000910697:E-Total") <> 0 or StringInStr($ligne,"WR7KTL12:2000910710:E-Total") <> 0 or StringInStr($ligne,"WR7KTL12:2000921301:E-Total") <> 0 Then
$section='E-Total'
ElseIf StringInStr($ligne,"WR7KTL12:2000910697:Pac") <> 0 or StringInStr($ligne,"WR7KTL12:2000910710:Pac") <> 0 or StringInStr($ligne,"WR7KTL12:2000921301:Pac") <> 0 Then
$section='Pac'
EndIf
If $section <> '' Then
$i=$i+8
$ligne=FileReadLine($Open, $i)
$chiffre = StringSplit($ligne,":")
$heure = StringMid( $chiffre[1],14) & 'h' & $chiffre[2]
GUICtrlSetData($Label2,$heure)
$split=StringSplit($heure,'T')
If $minimax <> $split[1] and $minimax <> '' Then
_minmax()
EndIf
$minimax=$split[1]
If FileExists("Fichier xml\" & $split[1])<>1 Then DirCreate("Fichier xml\" & $split[1])
$i=$i-5
If $section= 'IntSolIrr' Then
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
If number($chiffre[3]) < $IntSolIrr[0] Or $IntSolIrr[0]='' Then
$IntSolIrr[0]=number($chiffre[3])
$IntSolIrr[3]=$split[2]
EndIf
$i=$i+1
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
If number($chiffre[3]) > $IntSolIrr[1] Or $IntSolIrr[1]='' Then
$IntSolIrr[1]=number($chiffre[3])
$IntSolIrr[4]=$split[2]
EndIf
$i=$i+1
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
$IntSolIrr[2]=number($chiffre[3])
ElseIf $section="TmpMdul C" Then
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
If number($chiffre[3]) < $TmpMdulC[0] Or $TmpMdulC[0]='' Then
$TmpMdulC[0]=number($chiffre[3])
$TmpMdulC[3]=$split[2]
EndIf
$i=$i+1
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
If number($chiffre[3]) > $TmpMdulC[1] Or $TmpMdulC[1]='' Then
$TmpMdulC[1]=number($chiffre[3])
$TmpMdulC[4]=$split[2]
EndIf
$i=$i+1
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
$TmpMdulC[2]=number($chiffre[3])
ElseIf $section= 'E-Total' Then
For $a=2 to 4
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
$Etotal[$a]=$Etotal[$a]+number($chiffre[3])
$i=$i+1
Next
If $ETotal[0] > $ETotal[3] or $Etotal[0]='' Then
$Etotal[0]=$Etotal[3]
$ETotal[5]=$split[2]
EndIf
If $ETotal[1] < $ETotal[4] or $Etotal[1]='' Then
$Etotal[1]=$Etotal[4]
$ETotal[6]=$split[2]
EndIf
ElseIf $section= 'Pac' Then
For $a=2 to 4
$chiffre = StringSplit(FileReadLine($Open, $i),"><")
$Pac[$a]=$Pac[$a]+number($chiffre[3])
$i=$i+1
Next
If $Pac[0] > $Pac[3] or $Pac[0]='' Then
$Pac[0]=$Pac[3]
$Pac[5]=$split[2]
EndIf
If $Pac[1] < $Pac[4] or $Pac[1]='' Then
$Pac[1]=$Pac[4]
$Pac[6]=$split[2]
EndIf
EndIf
EndIf
$i=$i+1
FileReadLine($Open, $i)
Until @error=-1
$open2=FileOpen("Fichier xml\" & $split[1] & "\" & $split[2] & '.txt',1+8)
FileWriteLine($open2,$IntSolIrr[2])
FileWriteLine($open2,$TmpMdulC[2])
FileWriteLine($open2,$ETotal[2])
FileWriteLine($open2,$Pac[2])
FileClose($open2)
FileClose($Open)
EndIf
FileDelete("fichier xml\" & $file & "\" & $file2)
$file2=FileFindNextFile($search2)
WEnd
DirRemove("fichier xml\" & $file)
$file=FileFindNextFile($search)
WEnd
_minmax()
GUIDelete($Form1)
FileClose($search)
Func _minmax()
For $i=0 to 1
If $i=0 Then $nom='min'
If $i=1 Then $nom='max'
If FileExists("Fichier xml\" & $minimax & "\" & $nom & ".txt")<>1 Then
$open2=FileOpen("Fichier xml\" & $minimax & "\" & $nom & ".txt",1+8)
FileWriteLine($open2,$IntSolIrr[$i])
FileWriteLine($open2,$TmpMdulC[$i])
FileWriteLine($open2,$Etotal[$i])
FileWriteLine($open2,$Pac[$i])
FileWriteLine($open2,$IntSolIrr[$i+3])
FileWriteLine($open2,$TmpMdulC[$i+3])
FileWriteLine($open2,$Etotal[$i+5])
FileWriteLine($open2,$Pac[$i+5])
FileClose($open2)
Else
$open2=FileOpen("Fichier xml\" & $minimax & "\" & $nom & ".txt",1+8)
$i=1
If $nom='min' Then
If number(FileReadLine($open2,$i)) > $IntSolIrr[0] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i,$IntSolIrr[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i+4,$IntSolIrr[3],1)
EndIf
$i=$i+1
If number(FileReadLine($open2,$i)) > $TmpMdulC[0] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i,$TmpMdulC[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i+4,$TmpMdulC[3],1)
EndIf
$i=$i+1
If number(FileReadLine($open2,$i)) > $Etotal[0] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i,$Etotal[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i+4,$Etotal[5],1)
EndIf
$i=$i+1
If number(FileReadLine($open2,$i)) > $Pac[0] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i,$Pac[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\min.txt",$i+4,$Pac[5],1)
EndIf
ElseIf $nom='max' Then
If number(FileReadLine($open2,$i)) < $IntSolIrr[1] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i,$IntSolIrr[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i+4,$IntSolIrr[0],1)
EndIf
$i=$i+1
If number(FileReadLine($open2,$i)) < $TmpMdulC[1] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i,$TmpMdulC[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i+4,$TmpMdulC[0],1)
EndIf
$i=$i+1
If number(FileReadLine($open2,$i)) < $Etotal[1] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i,$Etotal[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i+4,$Etotal[0],1)
EndIf
$i=$i+1
If number(FileReadLine($open2,$i)) < $Pac[1] Then
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i,$Pac[0],1)
_FileWriteToLine("Fichier xml\" & $minimax & "\max.txt",$i+4,$Pac[0],1)
EndIf
EndIf
FileClose($open2)
EndIf
Next
For $i=0 to 1
$IntSolIrr[$i+3]=''
$IntSolIrr[$i]=""
$TmpMdulC[$i+3]=""
$TmpMdulC[$i]=""
$ETotal[$i+5]=""
$ETotal[$i]=""
$Pac[$i+5]=""
$Pac[$i]=""
Next
EndFunc
;##################################################
;############### Création de la gui ###############
;##################################################
$Form1 = GUICreate("", 650, 130, 192, 124)
$Combo2 = GUICtrlCreateCombo("Heure", 380, 100, 170, 20, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL,$WS_VSCROLL))
$Combo1 = GUICtrlCreateCombo("Date", 100, 100, 170, 20, BitOR($CBS_DROPDOWNLIST,$CBS_AUTOHSCROLL,$WS_VSCROLL))
$Label1 = GUICtrlCreateLabel("IntSolIrr", 80, 10, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE))
$Label2 = GUICtrlCreateLabel("TmpMdul C", 220, 10, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE))
$Label3 = GUICtrlCreateLabel("E-Total", 360, 10, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE))
$Label4 = GUICtrlCreateLabel("Pac", 500, 10, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE))
$Label5 = GUICtrlCreateLabel("Minimum", 10, 30, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE))
$Label6 = GUICtrlCreateLabel("Maximum", 10, 50, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE))
$Label7 = GUICtrlCreateLabel("Moyenne", 10, 70, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE))
$e=8
For $i=30 To 70 Step 20
For $a=80 to 570 step 140
Assign('label' & $e,GUICtrlCreateLabel("", $a, $i, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE,$WS_BORDER)))
$e=$e+1
Next
Next
$e=20
For $i=30 To 50 Step 20
For $a=150 to 640 step 140
Assign('label' & $e,GUICtrlCreateLabel("", $a, $i, 70, 20, BitOR($SS_CENTER,$SS_CENTERIMAGE)))
$e=$e+1
Next
Next
GUISetState(@SW_SHOW)
$combo1change='Date'
$combo2change='Heure'
$search=FileFindFirstFile("fichier xml\*.*")
$comboselect=''
$dir=FileFindNextFile($search)
While @error <> 1
If StringLen($dir)=10 Then $comboselect=$dir & '|' & $comboselect
$dir=FileFindNextFile($search)
WEnd
FileClose($search)
GUICtrlSetData($combo1,$comboselect)
While 1
if GUIGetMsg()= $GUI_EVENT_CLOSE Then exit
If $combo1change <> GUICtrlRead($Combo1) Then
$combo1change = GUICtrlRead($Combo1)
$search=FileFindFirstFile("fichier xml\" & $combo1change & "\*.txt")
$comboselect='|Heure|'
$dir=FileFindNextFile($search)
While @error <> 1
$dir=StringSplit($dir,".")
If $dir[1] <> 'min' And $dir[1] <> 'max' then $comboselect=$comboselect & $dir[1] & '|'
$dir=FileFindNextFile($search)
WEnd
FileClose($search)
GUICtrlSetData($combo2,$comboselect,"Heure")
For $i=1 to 4
GUICtrlSetData(Eval('label' & $i+7),StringLeft(FileReadLine("Fichier xml\" & $combo1change & "\Min.txt",$i),11))
Next
For $i=1 to 4
GUICtrlSetData(Eval('label' & $i+11),StringLeft(FileReadLine("Fichier xml\" & $combo1change & "\Max.txt",$i),11))
Next
For $i=5 to 8
GUICtrlSetData(Eval('label' & $i+15),"==> " & StringLeft(FileReadLine("Fichier xml\" & $combo1change & "\Min.txt",$i),11) & " ")
Next
For $i=5 to 8
GUICtrlSetData(Eval('label' & $i+19),"==> " & StringLeft(FileReadLine("Fichier xml\" & $combo1change & "\Max.txt",$i),11) & " ")
Next
EndIf
If $combo2change <> GUICtrlRead($Combo2) Then
$combo2change = GUICtrlRead($Combo2)
For $i=1 to 4
GUICtrlSetData(Eval('label' & $i+15),StringLeft(FileReadLine("Fichier xml\" & $combo1change & "\" & $combo2change & ".txt",$i),11))
Next
EndIf
sleep(10)
WEnd