Progresse Bar + Conseils marche à suivre

Résolu
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 - 14 juin 2005 à 12:41
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 - 14 juin 2005 à 15:36
Bonjour à tous,



En faite ce serait pour un conseil, que vous me dites ce que vous pensez de ca :



J'ai un fichier que je dois ouvrir et comme la taille du fichier peut
etre grande je doit mettre un progress bar pour faire patientez et
surtout pour lui montrez que le programme est pas en train de craqué :



Donc en faite : ce que j'ai fais :



Mettons la variable p = mon progresse bar



p.Maximum = monfichier.get_lenght() // la taille de mon fichier

p.value = 0 ; // Je met mon progressebar à 0



// je lis mon fichier du debut à la fin



for (int i = 0 ; i <monfichier.get_lenght() ; i++à

{



p.PerformStep()



// Traitement de mon fichier



}



Ca marche mais le faite de faire p.Maximum = la taille du fichier ca
m'a l'air un peut bizarre quand même, et serait t'il judicieux
d'executer mon progresseBar dans un thread different dans le cas ou je
veuille ajouter un bouton Annuler comme j'ai vu sue les
forums ?



Comment feriez vous à ma place ?



Par avance, merci.

3 réponses

cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 juin 2005 à 12:47
Salut,
Mettre la valeur maximale pour la progressBar à myFile.Lenght me paraît une assez bonne idée, par contre pour la lecture, je le ferais plutôt "par paquet", du genre tu lis 1024 byte d'un coup (du coup il faut changer un peu ta boucle).

Pour l'ajout d'un thread (et proposer des options pour faire une "pause" ou "suspend"), il te faudra utiliser les BeginInvoke, car un object ne peut pas directement agir avec un autre thread qui l'a créer...

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
3
cs_emmanuel9 Messages postés 903 Date d'inscription mercredi 23 février 2005 Statut Membre Dernière intervention 16 juin 2010 2
14 juin 2005 à 13:01
en faite dans ma boucle



J'ajoute des instances que je recupere du fichier, du genre :



dans la boucle

{

p.PerformStep()

base->Ajoute_Personne(personne) ;

}



si il fait annuler au milieu il a aura recupéré la moitié des personne
que contenait le fichier donc serait t'il judicieux de faire dans ma
boucle :



ArrayList liste_personne ;

dans la boucle


{


p.PerformStep()

liste_personne.Add(personne) ;


}



et ensuite faire une boucle de l'arraylist liste_personne pour faire base.ajoute(liste_personne.get_item(i)) ;



Ainsi si il fait annuler en cours, aucune personne n'aura été ajouter à la base.



Qu'en penses tu ?
0
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
14 juin 2005 à 15:36
Ben j'en pense que oui, tu es obligé de passer par une structure intermédiaire et faire l'ajout seulement si y'a pas eu d'erreurs (de stop de l'utilisateur ou autre).
Maintenant, s'il faut prendre une ArrayList pour les stocker... c'est une solution comme une autre

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
0
Rejoignez-nous