Nombre de lignes dans un fichier texte

cs_yoda Messages postés 19 Date d'inscription mardi 29 janvier 2002 Statut Membre Dernière intervention 21 juillet 2005 - 6 août 2002 à 17:32
cs_Prat Messages postés 1 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 26 octobre 2004 - 26 oct. 2004 à 18:03
Amis développeurs rebonjour,

Je suis en train de faire des barres de progression pour mon appli (c'est mon patron qui veut...). Pour cela il me faut le nombre de ligne du fichier texte que je veux lire ceci afin de savoir au j'en suis lors de la lecture.
Formule : ( nrelignelues / nbreLigneTotal )* 100

Il me manque nreLigneTotal

Y a t il une fonction vb qui donne le nombre de ligne d'un fichier texte. Je me doute qu'on peux le faire avec une boucle mais cela prend du temps en plus quand il y a + de 150 fichiers.

Merci A++

4 réponses

DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
7 août 2002 à 10:47
Salut...
Moi la seule maniere que je connaisse c'est d'ouvrir ton fichier en input et avec une boucle while/wend de lire ligne par ligne et d'incrementer une variable qui te donneras le nombre de ligne totale...

Sinon pour ce qui est de ta progressbar tu peux faire encore plus simple sans avoir le nombre de ligne total.. Il te faut juste le taille totale du fichier et le tour est joué.
Voici comment faire :

Dim fichier as String
Dim tailleTot as Double

tailleTot = filelen("c:\...\MonFichier.txt")
ProgressBar1.Min = 0
ProgressBar1.Max = tailleTot
ProgressBar1.Value = 0

Open "c:\...\MonFichier.txt" for Input as #1
While Not EOF(1)
Input #1, fichier
ProgressBar1.Value = Len(fichier)
Wend
Close #1

Voili voilou....
J'ai pas testé mais logiquement ca devrais très bien marcher ...
Si t'as des questions n'hésites pas...
A++ et bonne prog...

DeAtH_-_CrAsH
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
7 août 2002 à 12:12
Oupsssssssss....
Le code est faut il manque un ptit truc...
Car si je fais avancer la progressbar en fonction de fichier, ca va pas le faire etant donné que fichier va juste contenir la ligne en cours de lecture et non pas tout ce qui a été lu depuis le debut de la lecture...
Ya donc juste une ptite modif a faire ...
Voici le bout de code juste cette fois ci:


Dim ligne as String
Dim fichier as String
Dim tailleTot as Double

tailleTot = filelen("c:\...\MonFichier.txt")
ProgressBar1.Min = 0
ProgressBar1.Max = tailleTot
ProgressBar1.Value = 0
fichier = ""

Open "c:\...\MonFichier.txt" for Input as #1
While Not EOF(1)
Input #1, ligne
fichier = fichier & ligne
ProgressBar1.Value = Len(fichier)
Wend
Close #1

Dim fichier as String
Dim tailleTot as Double

tailleTot = filelen("c:\...\MonFichier.txt")
ProgressBar1.Min = 0
ProgressBar1.Max = tailleTot
ProgressBar1.Value = 0

Open "c:\...\MonFichier.txt" for Input as #1
While Not EOF(1)
Input #1, fichier
ProgressBar1.Value = Len(fichier)
Wend
Close #1

Voili voilou... La ca devrait marcher correctement...
En esperant que ca puisse t'aider....
Bonne prog...
A++

DeAtH_-_CrAsH
0
DeAtHCrAsH Messages postés 2670 Date d'inscription vendredi 25 janvier 2002 Statut Membre Dernière intervention 6 février 2013
7 août 2002 à 12:16
Re Oupssssssssssss....
Bizarre ca a foiré lol... Ya l'ancien bout de code qui s'est ajouté au nouveau ....
Voici pour la derniere fois le BON :

Dim ligne as String
Dim fichier as String
Dim tailleTot as Double

tailleTot = filelen("c:\...\MonFichier.txt")
ProgressBar1.Min = 0
ProgressBar1.Max = tailleTot
ProgressBar1.Value = 0
fichier = ""

Open "c:\...\MonFichier.txt" for Input as #1
While Not EOF(1)
Input #1, ligne
fichier = fichier & ligne
ProgressBar1.Value = Len(fichier)
Wend
Close #1

Voili voilou... La ca devrait marcher correctement...
En esperant que ca puisse t'aider....
Bonne prog...
A++

DeAtH_-_CrAsH
0
cs_Prat Messages postés 1 Date d'inscription lundi 30 décembre 2002 Statut Membre Dernière intervention 26 octobre 2004
26 oct. 2004 à 18:03
Je crois que c'est mieux de faire :

Dim ligne as String
Dim fichier as Double 'Chg ici
Dim tailleTot as Double

tailleTot = filelen("c:\...\MonFichier.txt")
ProgressBar1.Min = 0
ProgressBar1.Max = tailleTot
ProgressBar1.Value = 0
fichier = 0 'Chg ici

Open "c:\...\MonFichier.txt" for Input as #1
While Not EOF(1)
Input #1, ligne
'fichier = fichier & ligne
fichier = fichier + len(ligne)
ProgressBar1.Value = fichier
Wend
Close #1

Pq? Parce que la variable String est limité et que l'on risque d'avoir un prob si le fichier est très gros .....

Ciao
0
Rejoignez-nous