Page 1 sur 1

[R] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 12:44
par sozary
Bonjour à tous.

But:
Je voudrais télécharger un fichier un peu lourd (ubuntu avec ses 970 Mb), avec la fonction InetGet().

Je voudrais également qu'il soit affiché le % de téléchargement.

Soucis:

Je ne m'y connais pas encore assez, et mon code donne ça:

Code : Tout sélectionner

Global $name="ubuntu.iso"
$download=InetGet("http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-i386.iso",$name)
ProgressOn($name&" download","Please wait","0%")
$cent=InetGetInfo($download)/100
While InetGetSize($name)<InetGetInfo($download)

    Progressset(InetGetSize($name)/$cent,(InetGetSize($name)/$cent)&"%")
WEnd
ProgressOff()
run($name)
Le fichier se télécharge bien, mais aucune barre de progression n'est affiché.
Merci d'avance pour votre aide

Re: [..] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 13:57
par jguinch
sozary a écrit :Le fichier se télécharge bien, mais aucune barre de progression n'est affiché.
Oui, normal. Regarde dans la doc l'exemple de la fonction InetGetInfo.
Pour connaître l'avancement, il faudra faire un règle de 3, en utilisant InetGetSize et InetGetInfo.

Re: [..] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 15:37
par sozary
une règle de 3? Mais ce que je veux c'est faire une progress barre qui s'implémente de 1% tous les ($BitsTelecharge/($TailleTotalDuFichierSource/100))!

Re: [..] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 16:21
par orax
jguinch a écrit :Oui, normal. Regarde dans la doc l'exemple de la fonction InetGetInfo.
Et regarde aussi le paramètre "background" de InetGet car par défaut InetGet attend que le fichier soit téléchargé. En d'autres termes, par défaut, l'instruction qui suit InetGet ne sera exécutée qu'après la fin du téléchargement.

Re: [..] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 17:21
par sozary

Code : Tout sélectionner

#include <InetConstants.au3>
#include <MsgBoxConstants.au3>
Global $name="ubuntu.iso"
$download=InetGet("http://releases.ubuntu.com/14.04/ubuntu-14.04-desktop-i386.iso",$name, $INET_FORCERELOAD ,  $INET_DOWNLOADBACKGROUND )
$cent=InetGetInfo($download,$INET_DOWNLOADSIZE)/100
;ProgressOn($name&" download","Please wait","0%")

do
MsgBox(0,"",InetGetSize($name)/$cent)
    ;Progressset(InetGetSize($name)/$cent,(InetGetSize($name)/$cent)&"%")
Until InetGetInfo($download, $INET_DOWNLOADCOMPLETE)

;ProgressOff()
run($name)
ne marche pas!

Re: [..] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 17:52
par jguinch
InetGetInfo($download,$INET_DOWNLOADSIZE) doit être dans la boucle :roll:

Re: [..] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 18:25
par mikell
Et c'est $INET_DOWNLOADREAD qu'il faut utiliser :roll:

Code : Tout sélectionner

#include <InetConstants.au3>
#include <MsgBoxConstants.au3>

Global $name="autoit-v3-setup.exe"

$file = "https://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe"
ProgressOn($name&" download","Please wait","0%")
$size = InetGetSize($file)
$download = InetGet($file, $name, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND )

do
   $pcent = InetGetInfo($download, $INET_DOWNLOADREAD)*100/$size
   ProgressSet($pcent, Round($pcent, 2) & " %")
   Sleep(250)
Until InetGetInfo($download, $INET_DOWNLOADCOMPLETE)

ProgressOff()
 

Re: [..] Téléchargement avec ProgressSet

Posté : dim. 24 août 2014 21:01
par sozary
Oui bon! Sa va hein :mrgreen: !! Merci!