marc660
Messages postés171Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention18 juillet 2007
-
7 mars 2006 à 13:06
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 2008
-
7 mars 2006 à 20:18
Bonjour
Voila je souhaite rajouter a ce code une progressbar, mais celle si ne marche jai qua 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
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 7 mars 2006 à 13:54
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
NHenry
Messages postés15113Date d'inscriptionvendredi 14 mars 2003StatutModérateurDernière intervention22 avril 2024159 7 mars 2006 à 13:25
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
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 7 mars 2006 à 13:50
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.
marc660
Messages postés171Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention18 juillet 2007 7 mars 2006 à 17:41
Bonjour
Merci a vous tous pour vos réponses, mais jai 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.
Vous n’avez pas trouvé la réponse que vous recherchez ?
marc660
Messages postés171Date d'inscriptionjeudi 15 avril 2004StatutMembreDernière intervention18 juillet 2007 7 mars 2006 à 17:59
Jai 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
econs
Messages postés4030Date d'inscriptionmardi 13 mai 2003StatutMembreDernière intervention23 décembre 200824 7 mars 2006 à 20:18
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 !