Page 1 sur 2

[..] Barre de progression

Posté : lun. 29 août 2011 11:09
par Shade
Bonjour à tous,
Voila je viens de réaliser un script qui me permet de télécharger des fichiers de mon ftp en revanche, j'aimerai avoir une barre de progression car en ce moment je ne vois pas du tout l'avancement.

Pouvez-vous m'aider svp?

Voici mon script :
► Afficher le texte
Merci d'avance.

Cordialement.

Re: [..]Barre de progression

Posté : lun. 29 août 2011 12:00
par PandiPanda
Avec InetGetSize ( "URL" [, options ] )qui retourne la taille du fichier
Avec InetGetInfo( [ handle [, index ]] ) index à 1 pour vérifier la taille du fichier en cours de téléchargement
Avec GUICtrlCreateProgress ( left, top [, width [, height [, style [, exStyle]]]] )
et GUICtrlSetData ( controlID, data [, default] )

Vous devriez être capable de créer une barre de progression non?

Re: [..]Barre de progression

Posté : lun. 29 août 2011 13:30
par Shade
Oui mais ou est ce qu'il faut que je place les fonctions?

Re: [..] Barre de progression

Posté : lun. 29 août 2011 13:43
par PandiPanda
Ceci ?
► Afficher le texte
Pour telechargeProgress($ctrlId); le ctrlID est celui de la progress Barre
Pour _SetProgress($ctrlId,$SizeFile,$SizeDownload); le ctrlId est celui de la progress Barre,$SizeFile est la taille totale du fichier et $SizeDownload est la taille du fichier en cours de telechargement.

Il ne vous reste qu'a créer une gui pour la barre de progression, et d'y induire le ctrlID.

j'ai fait ceci sans tester, il y'a peut être une erreur, à vérifier, tester ^^

Re: [..] Barre de progression

Posté : lun. 29 août 2011 14:26
par Shade
Et la GUI je la crée à la suite du code de la barre de progression?

Re: [..] Barre de progression

Posté : lun. 29 août 2011 14:42
par PandiPanda
vous créer la gui, avant le "guiState()" ^.^
► Afficher le texte

Re: [..] Barre de progression

Posté : lun. 29 août 2011 14:49
par Shade
Auriez-vous un exemple de Gui pour une barre de progression svp?

Re: [..] Barre de progression

Posté : lun. 29 août 2011 14:51
par PandiPanda
le fichier d'aide aurai pu vous mettre sur la voie ...
GUICtrlCreateProgress()

Re: [..] Barre de progression

Posté : lun. 29 août 2011 14:58
par Shade

Code : Tout sélectionner

$progressbar = GUICtrlCreateProgress(10, 40, 200, 20, $$ctrlId)
GuiSetState ( )
C'est bon comme ça?

Re: [..] Barre de progression

Posté : lun. 29 août 2011 15:11
par PandiPanda
ceci vous convient?
► Afficher le texte

Re: [..] Barre de progression

Posté : lun. 29 août 2011 15:27
par Shade
Le code fonctionne mais la barre de progression devient complète en 1 sec alors que le téléchargement est à 40 Mo sur 2Go???

Re: [..] Barre de progression

Posté : lun. 29 août 2011 15:30
par PandiPanda
étrange avec le script que j'ai poster plus haut, je n'ai pas cette erreur la ...

Re: [..] Barre de progression

Posté : lun. 29 août 2011 15:35
par Shade
Le fichier sur lequel vous testez votre script il ne fait peut être pas 2Go ou 11Go ?

Re: [..] Barre de progression

Posté : lun. 29 août 2011 15:43
par PandiPanda
en effet loin de la haha ^^
vous pouvez mettre une msgbox(0,"",$sizeFile)

comme ceci;

Code : Tout sélectionner

    ...
msgbox(0,"",$sizeFile)
    Do
        Sleep(250)
        $info=InetGetInfo($hDownload)
        _SetProgress($progressbar,$SizeFile,$info[1])
    Until $info[2]
...
et quelle est la valeur renvoyé par la msgBox() ? ^^

il se peux que la taille totale renvoyée soit éronnée ...

Re: [..] Barre de progression

Posté : lun. 29 août 2011 16:02
par Shade
Je viens d'inserer le MsgBox il me renvoi exactement la taille de mon fichier "11388669952"

Je ne comprends plus ? :(

Re: [..] Barre de progression

Posté : lun. 29 août 2011 16:12
par PandiPanda
La progresse barre ne fait qu'indiquer ce que nous lui disons, donc il y'a sans doute une erreur quelque part je cherche :P

Code : Tout sélectionner

Func _SetProgress($ctrlId,$SizeFile,$SizeDownload)
    GUICtrlSetData($ctrlId,Int(($sizeDownload/$SizeFile)*100))
EndFunc
la fonction est bonne ...

hmmm vous pouvez remplacer la msgbox() par un _arraydisplay(InetGetInfo($hDownload)) et ajouter l'include correspondant en haut du script? ^^

et me dire les valeurs ressortie ...

Re: [..] Barre de progression

Posté : lun. 29 août 2011 16:16
par Shade
arraydisplay c'est fait mais je rajoute quel include?

Re: [..] Barre de progression

Posté : lun. 29 août 2011 16:21
par PandiPanda
#Include <Array.au3>

necessaire pour _ArrayDisplay()

Re: [..] Barre de progression

Posté : lun. 29 août 2011 16:23
par Shade
Voici les valeurs qu'ils me renvoient:

Code : Tout sélectionner

[0]|0
[1]|0
[2]|False
[3]|False
[4]|0
[5]|0

Re: [..] Barre de progression

Posté : lun. 29 août 2011 16:28
par PandiPanda
Bien donc deja les valeurs concernée sont "correcte" notamment le fait qu"il dise qu'il a pas encore débuter le télechargement et que forcemment il n'a pas fini de télécharger :P

maintenant vous pouvez enlever le _arrayDisplay()

et mettre ceci a la place de votre boucle do .. until?

Code : Tout sélectionner

    Local $T0=TimerInit()
    Do
        Sleep(250)
        $info=InetGetInfo($hDownload)
        If TimerDiff($T0)> 7000 Then _ArrayDisplay($info)
        _SetProgress($progressbar,$SizeFile,$info[1])
    Until $info[2]
elle me permettra de connaitre les infos après 7 secondes ... ^.^