Lecture d?un fichier x.ini avec progressBar [Résolu]

marc660 171 Messages postés jeudi 15 avril 2004Date d'inscription 18 juillet 2007 Dernière intervention - 7 mars 2006 à 13:06 - Dernière réponse : econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention
- 7 mars 2006 à 20:18
Bonjour




Voila je souhaite r’ajouter a ce code une progressbar, mais celle si ne marche j’ai qu’a la fin du chargement.


Il faut savoir que la ListMB.ini contient plus de 87524 lignes.


Open App.Path & "\Membre\ListMB.ini" For Input As #1


While Not EOF(1)


Input #1, Ligne


ListBox1.AddItem Ligne


Wend


Close #1




Merci d’avance
Afficher la suite 

6 réponses

Meilleure réponse
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 7 mars 2006 à 13:54
3
Merci
Petites améliorations de dernière minute :








Private Sub CommandButton1_Click()
Dim numFile As Long
Dim sTemp As String
Dim compt As Long

' La variable compt sert ici à compter les
' lignes du fichier texte.
' Testé sur 92000 lignes => 0.5 secondes.
compt = 0
numFile = FreeFile
Open "C:\toto.txt" For Input As #numFile
While Not EOF(numFile)
Line Input #numFile, sTemp
compt = compt + 1
Wend
Close #numFile

' Maintenant, on relit le fichier pour
' l'insérer dans la listbox.
ProgressBar1.Min = 0
ProgressBar1.Value = 0

ProgressBar1.Max = Int(compt / 4)+1
' A partir d'ici, on utilise la variable
' compt pour changer la progressbar
' toutes les 4 lignes lues.
numFile = FreeFile
Open "C:\toto.txt" For Input As #numFile
While Not EOF(numFile)
Line Input #numFile, sTemp
ListBox1.AddItem sTemp
compt = compt + 1
If compt = 4 Then


ProgressBar1.Value = ProgressBar1.Value + 1
DoEvents
compt = 0
End If
Wend
Close #numFile
ProgressBar1.Value = ProgressBar1.Max





End Sub










Manu

Merci econs 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 92 internautes ce mois-ci

NHenry 14260 Messages postés vendredi 14 mars 2003Date d'inscription 16 septembre 2018 Dernière intervention - 7 mars 2006 à 13:25
0
Merci
Bonjour

Langage VB6/.NET ?
si VB6 : les progressbar sont limitées à 32767 en valeur maximale.
Si VB.NET : met des DoEvents() pour permettre le rafraichissement de la PB.

Il est plus facile de batiser kk1 que de la convertir. (surtout en programmation)
Une question se pose sur le forum, pas en privé
NHenry (VB6, VBA excel, VB.NET, C++, C#.Net)
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 7 mars 2006 à 13:50
0
Merci
La limitation maximale des progressbar n'est pas trop gênante. Il
suffit d'incrémenter la progressbar de 1 tous les 4 lignes. Ainsi, tu
sauras lire 128000 lignes.

Mais avant de pouvoir utiliser cette progressbar, tu dois déterminer le nombre de lignes qu'il y a dans ton fichier.

Sans ce nombre de ligne, pas de ProgressBar1.Max

Sans ProgressBar1.Max, pas de ratio lignes_lues/lignes_à_lire.

Et ceci est valable dans tous les langages.












Private Sub CommandButton1_Click()

Dim numFile As Long

Dim sTemp As String

Dim compt As Long



' La variable compt sert ici à compter les

' lignes du fichier texte.

' Testé sur 92000 lignes => 0.5 secondes.

compt = 0

numFile = FreeFile

Open "C:\toto.txt" For Input As #numFile

While Not EOF(numFile)

Line Input #numFile, sTemp

compt = compt + 1

Wend

Close #numFile



' Maintenant, on relit le fichier pour

' l'insérer dans la listbox.

ProgressBar1.Min = 0

ProgressBar1.Value = 0

ProgressBar1.Max = Int(compt / 4)

' A partir d'ici, on utilise la variable

' compt pour changer la progressbar

' toutes les 4 lignes lues.

numFile = FreeFile

Open "C:\toto.txt" For Input As #numFile

While Not EOF(numFile)

Line Input #numFile, sTemp

ListBox1.AddItem sTemp

compt = compt + 1

If compt = 4 Then


ProgressBar1.Value = ProgressBar1.Value + 1

DoEvents

compt = 0

End If

Wend

Close #numFile



End Sub





Manu
marc660 171 Messages postés jeudi 15 avril 2004Date d'inscription 18 juillet 2007 Dernière intervention - 7 mars 2006 à 17:41
0
Merci
Bonjour

Merci a vous tous pour vos réponses, mais j’ai le même problème la progressbar ne bouge pas au chargement, mais a la fin du chargement le value passe directement en Max.

Je suis sur VB6


Merci pour vos prochaines réponses.
marc660 171 Messages postés jeudi 15 avril 2004Date d'inscription 18 juillet 2007 Dernière intervention - 7 mars 2006 à 17:59
0
Merci
J’ai légèrement modifié le code de Manu (econs (Admin CS)).
merci beaucoup



Private Sub CommandButton1_Click()
Dim numFile As Long
Dim sTemp As String
Dim compt As Long


' La variable compt sert ici à compter les
' lignes du fichier texte.
' Testé sur 92000 lignes => 0.5 secondes.
compt = 0
numFile = FreeFile
Open "C:\toto.txt" For Input As #numFile
While Not EOF(numFile)
Line Input #numFile, sTemp
compt = compt + 1
Wend
Close #numFile

' Maintenant, on relit le fichier pour
' l'insérer dans la listbox.
ProgressBar1.Min = 0
ProgressBar1.Value = 0
ProgressBar1.Max = Int(compt)+1 'Modifier
' A partir d'ici, on utilise la variable
' compt pour changer la progressbar
' toutes les 4 lignes lues.
numFile = FreeFile
Open "C:\toto.txt" For Input As #numFile
While Not EOF(numFile)
Line Input #numFile, sTemp
ListBox1.AddItem sTemp
compt = compt + 1


'''''''''Ajouter'''''''''''''''''
If ProgressBar1.Value <> ProgressBar1.Max Then
ProgressBar1.Value = ProgressBar1.Value + 1
End If
'''''''''''''''''''''''''''''''''
If compt = 4 Then
' ProgressBar1.Value = ProgressBar1.Value + 1
DoEvents
compt = 0
End If
Wend
Close #numFile
ProgressBar1.Value = ProgressBar1.Max



End Sub


merci beaucoup
econs 4066 Messages postés mardi 13 mai 2003Date d'inscription 23 décembre 2008 Dernière intervention - 7 mars 2006 à 20:18
0
Merci
Ce que tu as ajouté fera planter l'appli dès que tu dépasseras la 32567ème ligne !
J'incrémente déjà ProgressBar1.Value quelques lignes en dessous, çà suffit largement !

Manu

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.