J'ai fait une petite fonction simple (:D) qui permet de télécharger et d'extraire un fichier ZIP de ressources.
Il peux être utilisé pour alléger votre .exe par exemple !
J'ai poussé au maximum la fonction de façon à donner un maximum de paramètres.
Toutes les informations sur le déroulement de la fonction s'affichent sur la console.
Fonction :
Code : Tout sélectionner
Func InetGetSources($URL, $DIR, $ProgressDown = 1, $ProgressZip = 0, $ReDown = 0)
ConsoleWrite("-> // InetGetSources() 2.2 by DJSIR Started" & @CRLF)
#cs ----------------------------------------------------------------------------------------------------------------------
InetGetSources() 2.2 by DJSIR
Cette fonction permet de télécharger différentes ressources (images, audio, texte) dans un ZIP et de les extraire dans le dossier voulu.
Paramètres :
$URL (lien), lien vers le fichier à télécharger
$DIR (dossier), lien vers dossier d'extraction
Options :
$ProgressDown / $ProgressZip (1/0), affiche où non une barre de progression (Down différent de Zip)
$ReDown (1/0), si le fichier existe déja, le re-télécharger ?
Remarques :
La Fonction $FileExtention ne fonctionne pas avec les pages PHP. Le téléchargement fonctionnera.
Ex : http://down.source.fr/.../fichier-win32.exe?langue=en
Returns :
1 : Finish Succefull
0 : Finish with Errors and Set "@error"
"@error" Returns :
1 : $URL n'est pas un "String"
2 : $DIR n'est pas un "String"
3 : $ProgressDown n'est pas un nombre
4 : $ProgressZip n'est pas un nombre
5 : $ReDown n'est pas un nombre
6 : Le fichier n'à pu être téléchargé
#ce ----------------------------------------------------------------------------------------------------------------------
Select
Case IsString($URL) = 0
_SetError(1)
Return 0
Case IsString($DIR) = 0
_SetError(2)
Return 0
Case StringIsDigit($ProgressDown) = 0
_SetError(3)
Return 0
Case StringIsDigit($ProgressZip) = 0
_SetError(4)
Return 0
Case StringIsDigit($ReDown) = 0
_SetError(5)
Return 0
EndSelect
ConsoleWrite('> Retrieving File Information..' & @CRLF)
$FileSize = InetGetSize($URL)
$FileExtention = StringSplit($URL, ".")
$FileExtention_Num = UBound($FileExtention) - 1
ConsoleWrite(@TAB & '- File Format *.' & $FileExtention[$FileExtention_Num] & @CRLF & @TAB & '- File Size ' & $FileSize & ' bytes' & @CRLF)
ConsoleWrite('> Getting File..' & @CRLF)
If $ProgressDown = True Then
ProgressOn("Getting Ressources..", "Downloading Ressources..", "0 %", -1, -1, 16)
EndIf
DirCreate(@ScriptDir & "\c60414ce")
$FileDownload = InetGet($URL, @ScriptDir & "\c60414ce." & $FileExtention[$FileExtention_Num], $ReDown, 1)
Do
$IntPercent = Int(InetGetInfo($FileDownload, 0) * 100 / $FileSize)
If $ProgressDown = True Then ProgressSet($IntPercent, $IntPercent & " %")
ConsoleWrite(@TAB & InetGetInfo($FileDownload, 0) & " bytes of " & $FileSize & " downloaded" & @CRLF)
Sleep(50)
Until InetGetInfo($FileDownload, 2) = True
If FileExists(@ScriptDir & "\c60414ce." & $FileExtention[$FileExtention_Num]) = 0 Then
_SetError(6)
Return 0
EndIf
ConsoleWrite('+> Download Finished' & @CRLF)
ConsoleWrite('> Extracting File..' & @CRLF)
_7ZIPExtract(0, @ScriptDir & "\c60414ce." & $FileExtention[$FileExtention_Num], $DIR, 1, $ProgressZip)
ConsoleWrite('+> Extraction Finished' & @CRLF)
ConsoleWrite('-> \\ InetGetSources() 2.2 by DJSIR Finished' & @CRLF)
Return 1
EndFunc ;==>InetGetSources
Func _SetError($NUM)
SetError($NUM)
ConsoleWrite('!> // InetGetSources() 2.2 by DJSIR Finished' & @CRLF & @TAB & 'Error n°' & @error & @CRLF)
EndFunc ;==>_SetError
► Afficher le texteExemple 1
► Afficher le texteExemple 2