Progress bar et telechargement

vandest
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012
- 23 janv. 2012 à 18:26
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
- 30 janv. 2012 à 17:24
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

ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
23 janv. 2012 à 18:34
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
0
vandest
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012

29 janv. 2012 à 01:09
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
0
Mayzz
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
30
29 janv. 2012 à 04:26
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.
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
29 janv. 2012 à 08:07
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
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
29 janv. 2012 à 08:21
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
0
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
29 janv. 2012 à 12:50
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
0
vandest
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012

29 janv. 2012 à 16:13
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
0
Mayzz
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
30
29 janv. 2012 à 16:23
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.
0
Mayzz
Messages postés
2813
Date d'inscription
mardi 15 avril 2003
Statut
Membre
Dernière intervention
2 juin 2020
30
29 janv. 2012 à 16:24
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.
0
ucfoutu
Messages postés
18038
Date d'inscription
lundi 7 décembre 2009
Statut
Modérateur
Dernière intervention
11 avril 2018
235
29 janv. 2012 à 16:33
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
0
vandest
Messages postés
7
Date d'inscription
dimanche 3 avril 2005
Statut
Membre
Dernière intervention
30 janvier 2012

30 janv. 2012 à 17:05
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
0
cs_ShayW
Messages postés
3258
Date d'inscription
jeudi 26 novembre 2009
Statut
Membre
Dernière intervention
3 décembre 2019
56
30 janv. 2012 à 17:24
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
0