Nombre de lignes dans un fichier texte

Signaler
Messages postés
19
Date d'inscription
mardi 29 janvier 2002
Statut
Membre
Dernière intervention
21 juillet 2005
-
Messages postés
1
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
26 octobre 2004
-
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

Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
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
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
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
Messages postés
2670
Date d'inscription
vendredi 25 janvier 2002
Statut
Membre
Dernière intervention
6 février 2013
2
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
Messages postés
1
Date d'inscription
lundi 30 décembre 2002
Statut
Membre
Dernière intervention
26 octobre 2004

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