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

Signaler
Messages postés
171
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
18 juillet 2007
-
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
-
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

6 réponses

Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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
3
Merci

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 195 internautes nous ont dit merci ce mois-ci

Messages postés
14770
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
27 février 2021
151
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)
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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
Messages postés
171
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
18 juillet 2007

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.
Messages postés
171
Date d'inscription
jeudi 15 avril 2004
Statut
Membre
Dernière intervention
18 juillet 2007

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
Messages postés
4030
Date d'inscription
mardi 13 mai 2003
Statut
Modérateur
Dernière intervention
23 décembre 2008
22
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