[R] Barre de progression : ça bloque !

Aide et conseils concernant AutoIt et ses outils.
Règles du forum
.
Répondre
Yos6
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 09 oct. 2009 15:11
Status : Hors ligne

[R] Barre de progression : ça bloque !

#1

Message par Yos6 »

Bonjour à tous, j'ai découvert AutoIt il n'y a pas très longtemps et j'adore déjà ^^
Je suis entrain de plancher sur un petit logiciel qui me servira personnellement mais aussi à d'autres personnes éventuellement.
Le principe est le suivant : Copier le contenu d'un CD dans un dossier choisi par l'utilisateur, se servir de ces fichiers pour en faire un ISO et pour finir supprimer les fichiers copiés.
Donc j'ai réussi la 1ère partie, copier les fichiers, j'ai pas encore planché sur l'ISO pour l'instant.
C'est là que ça devient intéressant, j'ai voulu mettre une barre de progression en fonction des fichiers copiés, ça marche mais le problème est que la fenêtre se bloque, rame et c'est pas fluide du tout...Comment faire pour que ça ne rame pas ? Je précise que je veux une barre intégrée à la fenêtre, je veux pas de la fonction ProgressOn.
Je ne sais pas non plus si ma méthode est la bonne, en fait elle est pas très joli :
Je stocke tous les noms de dossiers dans un array "dossiers", je stocke tous les noms de fichiers dans un array "fichiers" et je les copie séparément dans 2 boucles For. J'ai fais ce truc là en pensant être sûr que ça actualiserait pour chaque élément, seulement bon vu que ça rame ben je suis un peu perdu ^^
J'ai bien cherché sur le net seulement voilà, je rencontre souvent les mêmes problèmes :
- C'est souvent des pavés de code et démerde toi avec ça
- Ça utilise ProgressOn
- C'est pas un modèle de ProgressBar pour copier des fichiers
... etc

J'espère que vous pourrez m'aider à y voir plus clair ;)

PS : Je suis en mode OnEvent
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#2

Message par Tlem »

Cette partie à déjà été abordée sur le forum. Il y à plusieurs type de fonction pour réaliser ce que vous cherchez, tout dépend de si vous voulez un style particulier ou du classique.
En attendant, dans le forum UDF et fonctions, vous trouverez des exemples.
Utilisez l'outil de recherche du forum.
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Yos6
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 09 oct. 2009 15:11
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#3

Message par Yos6 »

J'ai cherché sur le forum et je n'ai pas trouvé de topic qui correspondait à ma demande (et dieu sait que j'ai fouillé)...
Enfin bref je me suis débrouillé et j'ai trouvé une solution, j'ai fait un 2ème script qui s'occupe de la copie du contenu du CD-ROM :
► Afficher le texte
"$CmdLine[1]" contient la lettre du lecteur utilisé, il passé en paramètre par le script principal dont voici un extrait :
► Afficher le textetexte
J'explique :

- Je lance donc le script avec le lecteur en paramètre
- Tant que la taille de destination et de source sont différentes, le script boucle (cela signifie que la copie n'est pas terminée)
- En gros le "If" dans la boucle permet de mettre à jour la barre seulement si nécessaire (inutile de faire un "GUICtrlSetData" en boucle, surtout avec un pourcentage qui s'incrémente en même temps car celui ci se mettra à clignoter très vite...)

Voilà, maintenant mon seul problème réside dans la taille des fichiers.
En effet lorsque Windows copie un fichier, qu'il soit petit ou gros, il affiche la taille totale du fichier copié directement dans le dossier de destination (et non pas en temps réel)...Et c'est bien là le problème, moi dans la copie du CD il y a un fichier qui pèse environ 400 Mo alors que les autres sont tout petits, ce qui fait que la barre au moment de copier ce fichier s'incrémente instantanément avant même de l'avoir copié au lieu d'y aller petit à petit en fonction du nombre réel d'octets copiés...

Auriez-vous une solution pour palier à ce problème ?

Merci de votre aide.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#4

Message par Tlem »

Pour une copie de fichier avec progression en temps réél, vous avez ceci : http://www.autoitscript.com/forum/index ... t&p=600777

Sinon il existe quelque chose de bien plus complet ici : http://www.autoit.de/index.php?page=Thread&postID=58875

Voici le code pour votre demande (Tableau de fichiers) en Anglais :
► Afficher le texte
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Yos6
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 09 oct. 2009 15:11
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#5

Message par Yos6 »

Merci beaucoup, je me suis servi de votre 1er lien. Par contre j'ai enlevé la barre de progression personnalisée (ProgressOn), j'ai modifié un peu le code pour qu'il colle à ma barre à moi.
Ca marche le fichier se copie bien petit à petit mais le problème est que pendant un chargement long, la barre ne s'actualise pas, en effet il faut que j'aille moi même dans le dossier et que je fasse des F5...
Il faudrait trouver un moyen d'actualiser le dossier de destination en fait...
Modifié en dernier par Yos6 le mar. 27 oct. 2009 12:17, modifié 1 fois.
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#6

Message par Tlem »

Si vous n'y arrivez pas, regardez plutôt du coté du deuxième lien.
Je l'ai testé et il marche nickel ... ;)
Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Yos6
Niveau 1
Niveau 1
Messages : 4
Enregistré le : ven. 09 oct. 2009 15:11
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#7

Message par Yos6 »

Ben en fait le 1er marche bien, seulement en fait je l'utilise que partiellement :

Mon script principal lance la copie à l'aide d'un script "copie.exe" qui contient cette fameuse fonction _CopyWithProgress, seulement j'ai enlevé la partie qui fait actualiser la barre de progression (ProgressOn), à la place je laisse mon script principal s'en occuper :
► Afficher le texte
En fait je voulais que mon script boucle à chaque fois que la taille du dossier changerait, seulement je ne pensais pas que taille ne s'actualiserait pas au fur et à mesure sans mon intervention ^^
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#8

Message par scorp84 »

@Tlem :

Bonjour,

Désolé de revenir sur ce post un peu ancien mais tu proposes un lien vers vers un script qui à l'air très bien :
Sinon il existe quelque chose de bien plus complet ici : http://www.autoit.de/index.php?page=Thread&postID=58875
Seulement, j'obtiens une erreur :
R:\...\_MultiFileCopy.au3(141,88) : ERROR: _StringAddThousandsSep(): undefined function.
$iTransferRate = _StringAddThousandsSep(Int($aSplit[8] / $iTotalTime / 1000), '.', ',')
En regardant un peu sur Internet, j'ai vu que cette fonction était dans une ancienne version de string.au3.

J'ai essayé de le trouver mais sans succès :-(

Où pourrais je trouver ou comment pourrais je le contourner ?

Merci d'avance.

Amicalement.

BM
Avatar du membre
Tlem
Site Admin
Site Admin
Messages : 11823
Enregistré le : ven. 20 juil. 2007 21:00
Localisation : Bordeaux
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#9

Message par Tlem »

Thierry

Rechercher sur le forum ----- Les règles du forum
Le "ça ne marche pas" est une conséquence commune découlant de beaucoup trop de raisons potentielles ...

Une idée ne peut pas appartenir à quelqu'un. (Albert Jacquard) tiré du documentaire "Copié n'est pas volé".
Avatar du membre
scorp84
Niveau 7
Niveau 7
Messages : 415
Enregistré le : mar. 04 nov. 2008 21:51
Localisation : Avignon, France
Status : Hors ligne

Re: [..] Barre de progression : ça bloque !

#10

Message par scorp84 »

Merci beaucoup :-)

Amicalement.

BM
Répondre