Comment gérer la tempo entre deux téléchargements ?
farco33
Messages postés7Date d'inscriptionmardi 5 février 2008StatutMembreDernière intervention 7 mars 2008
-
5 mars 2008 à 10:50
farco33
Messages postés7Date d'inscriptionmardi 5 février 2008StatutMembreDernière intervention 7 mars 2008
-
7 mars 2008 à 08:56
Salut à tous
Je réalise un petit gestionnaire de téléchargement, l'idée c'est de pouvoir récupérer plein d'url, et de les lister pour les télécharger (http), une par une
sauf que tout se fait en une fois et que mon prog télécharge ce qu'il peut, et quand il y arrive, c'est forcement le dernier de la liste
J'ai bien essayé de poser un Doevents pour attendre la fin du download avant d'attaquer le suivant, mais j'avoue, c'est moi qui l'ai pas mis comme il faut, et je vois pas trop comment ca marche en fait. J'ai essayé quelques boucles, bien lourdes et tout aussi inefficaces
voila juste la boucle :
For Index = 0 To List1.ListCount - 1
List1.ListIndex = Index
List2.ListIndex = Index
DoEvents
HTTPCopy.Download List1.ListIndex, List2.ListIndex, True
DoEvents
Next Index
J'ai essayé avec DownLoadWebFile, ca télécharge bien mais ca me bloque l'appli pendant le tranfert (monotache 100%), donc moche et inexploitable
Ensuite j'ai trouvé HTTPCopy, un petit prog VB qui marche nickel (merci l'auteur), avec barre progression, infos.. sauf que j'"arrive pas à attendre la fin du download pour passer au suivant
Merci de vos suggestions
A voir également:
Comment gérer la tempo entre deux téléchargements ?
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 5 mars 2008 à 13:14
Salut
Je ne connais pas HTTPCopy mais regarde si cet objet à un évènement "Complete".
Dans ce cas, il te suffit d'attendre cet évènement dans une boucle Do-Loop à l'intérieur de laquelle tu mettras un DoEvents, histoire de ne pas bloquer le système.
Sinon, il va falloir que tu récupères la taille du fichiuer avant download et que tu le compares à la quantité de données reçues pour savoir que c'est terminé.
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
farco33
Messages postés7Date d'inscriptionmardi 5 février 2008StatutMembreDernière intervention 7 mars 2008 5 mars 2008 à 14:05
Merci Jack pour ta réponse
J'ai cru effectivement voir un event Complete sur HTTPCopy, je vais voir ce que je peux en faire..le problème était principalement sur l'utilisation du DoEvents, déja être sur que je l'utilise correctement
Pour la taille, y a "peut être" plus rapide, étant donné qu'il y a une progressbar qui fonctionne, je peux peut etre tester si elle est arrivée à 100%, enfin, c'etait une idée, ca évitait des manip " si Taille fichier <> taille_DL", non ?
Pour info : HTTPCopy, c'est une appli VB 100% Winsock (http://www.vbfrance.com/code.aspx?ID=27293), ca tourne bien, c'est propre, mais ca gère une Url à la fois
Je fais mes essais, et je viendrais poser d'autres questions si je galère trop et mes réponses si je trouve
Question Winsock :
Pour chaque download, ca donne :
Winsock Connect, Winsock Download, Winsock Close
Cela pose-t-il un probleme de faire comme ca, ou faudrait-il mieux que j'ai qu'un seul Connect et un seul Close ?
Problème d'abus de Winsock, de "propreté", je vais pas me faire jeter par le FAI si je fais 50 Winsock Connect à la suite ??
cs_Jack
Messages postés14006Date d'inscriptionsamedi 29 décembre 2001StatutModérateurDernière intervention28 août 201579 6 mars 2008 à 19:26
Salut
Non, l'enchaimenent Connect-Download-Close parait logique.
Oui, l'évènement Close est le bon indicateur.
Tu peux donc utiliser une boucle simple :
Do While monWinsock.State <> sckClosed
DoEvents
Loop
avant de passer au suivant
Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés
<hr />
Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
Vous n’avez pas trouvé la réponse que vous recherchez ?