Progress bar et telechargement

Signaler
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012
-
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
-
codeurs de vbfrance bonsoir !!

En deux mots voici mon probleme!!
Je dois telecharger SIMULTANEMENT plusieurs fichiers dont je ne sais pas a l'avance le nombre !!
je me sers d'un webclient que j'incremente a chaque telechargement
j'utilise "monwebclient_downloadprogresschanged " pour intercepter le pourcentage telechargé
le probleme viens des barres de progression!!
comment dire au programme que tel pourcentage de progression correspond a tel fichier ???
pour etre plus clair voici des extraits de mon code
[i]dans les declarations
Private WithEvents charge As New WebClient
dans l'evenement click du bouton telecharger
charge = New WebClient
charge.DownloadFileAsync(New Uri(adr), My.Computer.FileSystem.SpecialDirectories.MyDocuments & "" & nomfile)
dans l'evenement charge_downloadprogresschanged
[b]progressbar1.value =e.progresspercentage
/b/i

En remerciant d'avance toutes celles et ceux qui voudrons bien s'attarder sur mon probleme

12 réponses

Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Bonjour,

Je ne comprends pas.
Tu connais le nom du fichier (ta variable nomfile)
Il te suffit de donner à cette variable une portée (générale ou publique) et sa valeur sera accessible partout à chaque instant ===>> en montrer le contenu dans un label.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012

bonsoir ucfoutu,
Tout d'abord merci d'avoir pris le temps de me repondre, votre reponse ne solutionne helas pas mon probleme !!!!mais peut-etre (et meme surement me suis-je mal exprimé....).Je vais tenter avec un exemple...
1er telechargement
tout vas bien (un webcleint,un progressbar qui augmente bien au fur et a mesure)pas de probleme !!
2eme telechargement et suivant
ca se complique(un webcleint,un progressbar qui reste a zero et qui me remets le premier progressbar a zero avant de l'utiliser a son compte....
suis je plus clair ainsi ??? Je l'espere car ca fais un bout de temps que je suis bloqué sur ce truc (aimerais bien passer a autre chose !!)

Amicale salutations de Nancy a vbfrance
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Salut,

Si je comprends bien ton problème est que tu souhaites faire une barre de progression globale ? C'est ça ?

Mais comme tu le dis toi même tu ne connais pas le nombre de téléchargement à l'avance. Ici il ne s'agit pas d'un problème de programmation mais de logique. On ne peut pas faire de statistique sur un chiffre que l'on ne connait pas. Pour palier à cela la seule solution est d'envoyer une requête pour obtenir la liste des fichiers avant le premier téléchargement et compter combien il y a de fichier. Par la suite le reste est simple.

Tu déclares une variable Total et tu lui donne comme valeur le nombre de fichier à télécharger.

Dim Total As Integer 0, Current As Integer 0
Total = 'Nombre de fichier...


à chaque téléchargement tu incrémente la variable Current

Current += 1
charge = New WebClient 
charge.DownloadFileAsync(New Uri(adr), My.Computer.FileSystem.SpecialDirectories.MyDocuments & "" & nomfile)


En suite pour la progression :

progressbar1.value = ((Current-1) + (e.progresspercentage / 100) / Total) * 100


Mais bien entendu il te faut connaitre à l'avance le nombre de fichier à télécharger. Cette une question d'organisation.

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Re,

J'ai l'impression de finir par comprendre que ce que veut dire vandest est à la fois différent de ce que j'avais cru comprendre et de ce que Mayzz a perçu.
Qu'il ne s'agit ni du nom de fichier, ni d'un pourcentage de progression par rapport à un total.

Il semble que la difficulté se vandest est celle, pour chaque fichier téléchargé, de faire avancer la progressbar qui lui correspond

il a 2 progressbars. il télécharge simultanément deux fichiers à la fois, et veut que la progression de leur téléchargement soit constaté sur une progressbar pour l'un et sur l'autre progressbar pour l'autre. Et n'a qu'un évènement charge_downloadprogresschanged

N'en suis pas certain, mis je pense que c'est cela, qu'il veut exprimer.

____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Je ne comprends pas grand chose de VB.Net.
Je m demande cependant si la solution ne se trouverait pas Dans cette rubrique MSDN
Mille excuses si à côté de la plaque.


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
51
Salut

[del]je n'ai pas compris
tu télécharge simultanément ou l'un aprÚs l'autre
le adr change à chaque téléchargement ?
expliques ce que tu veux faire pas ce que tu as
fait
envoie ton code et utilise la coloration syntaxique 3ieme icon de droite
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012

bonjour,
Ucfoutu a parfaitement cerné mon probleme !!! (en 3 mots en plus !!)
pour chaque fichier telechargé faire avancer le progressbar qui lui correspond sans connaitre a l'avance le nombre de fichiers a telecharger !! Merci encore de prendre le temps de vous pencher sur mon petit probleme
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Ah ok, c'est déjà plus clair la...

Donc tu crée tes contrôles dynamiquement ? Comment fais-tu ? Peut-on avoir un peu plus de code ? Ça nous faciliterait la tâche.


Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
2814
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
37
Et aussi ou sont placés tes progressbar ? Comment compte tu faire dans le cas ou il y aurait 100 fichier à télécharger ? (Un panel avec un scroll ?)

Si le déboguage est l'art d'enlever les bogues, la programmation doit être l'art de les créer.
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
239
Une précision/question : les chargements simultanés se font-ils depuis la même valeur adr ?
Car si 2 différentes, une solution pourrait-être une expression conditionnelle sur un clone de cette variable (à mettre en portée générale) pour le choix de la progressbar
Enfin. Je n'en sais pratiquement rien. Juste une idée, en "aveugle".


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012

bonjour,
voici les extraits de mon code qui me posent probleme !!


imports system.net


dans la declaration de ma form :
public friend withevents charge as new webclient
public friend withevents pb as new progressbar
public adr as string ' textbox ou je rentre l'adresse (c'est du http) du fichier a telecharger



dans le bouton de telechargement :
charge= new webclient
pb = new progressbar
charge.DownloadFileAsync(new uri(adr),surmonrdi)


Private Sub charge_DownloadProgressChanged(ByVal sender As Object, ByVal e As System.Net.DownloadProgressChangedEventArgs) Handles charge.DownloadProgressChanged
pb.Value = e.ProgressPercentage
End Sub


voila ou j'en suis !! petite precision pour Mayzz,mes progressbar crées dynamyquement sont placés dans un tablelayoutpanel
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
51
Salut

pour Mayzz,mes progressbar crées dynamyquement


où sont ils crées?

public friend withevents pb as new progressbar 


tu n'as qu'un progressbar