Je cherche =E0 r=E9cup=E9rer le nombre de lignes d'un fichier=20
texte sans avoir =E0 le balayer avec un code du genre :
Dim Ligne as String
Dim i as Integer
Open "fichier.txt" For Input As #1
Do Until EOF(1)
i =3D i + 1
Line Input #1, Ligne
Loop
Close #1
MsgBox i & " lignes"
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
EddiGordo
"Nicolas" avait énoncé :
Bonjour,
Je cherche à récupérer le nombre de lignes d'un fichier texte sans avoir à le balayer avec un code du genre :
Dim Ligne as String Dim i as Integer Open "fichier.txt" For Input As #1 Do Until EOF(1) i = i + 1 Line Input #1, Ligne Loop Close #1 MsgBox i & " lignes"
Merci d'avance et bonne prog
Nicolas
Bonjour
Tu peux peut-être compter le nombre de retour chariot du fichier, cela devrait fonctionner pour la plupart des cas...
Dim Ff As Long, Str As String, MonFichier As String, NombreDeLigne As Long MonFichier = "C:Toto.Txt" Ff = FreeFile Open MonFichier For Binary As Ff Str = String$(LOF(Ff), Chr$(0)) Get #Ff, , Str Close #Ff NombreDeLigne = UBound(Split(Str, vbCrLf))
-- Enjoy !
"Nicolas" avait énoncé :
Bonjour,
Je cherche à récupérer le nombre de lignes d'un fichier
texte sans avoir à le balayer avec un code du genre :
Dim Ligne as String
Dim i as Integer
Open "fichier.txt" For Input As #1
Do Until EOF(1)
i = i + 1
Line Input #1, Ligne
Loop
Close #1
MsgBox i & " lignes"
Merci d'avance et bonne prog
Nicolas
Bonjour
Tu peux peut-être compter le nombre de retour chariot du fichier, cela
devrait fonctionner pour la plupart des cas...
Dim Ff As Long, Str As String, MonFichier As String,
NombreDeLigne As Long
MonFichier = "C:Toto.Txt"
Ff = FreeFile
Open MonFichier For Binary As Ff
Str = String$(LOF(Ff), Chr$(0))
Get #Ff, , Str
Close #Ff
NombreDeLigne = UBound(Split(Str, vbCrLf))
Je cherche à récupérer le nombre de lignes d'un fichier texte sans avoir à le balayer avec un code du genre :
Dim Ligne as String Dim i as Integer Open "fichier.txt" For Input As #1 Do Until EOF(1) i = i + 1 Line Input #1, Ligne Loop Close #1 MsgBox i & " lignes"
Merci d'avance et bonne prog
Nicolas
Bonjour
Tu peux peut-être compter le nombre de retour chariot du fichier, cela devrait fonctionner pour la plupart des cas...
Dim Ff As Long, Str As String, MonFichier As String, NombreDeLigne As Long MonFichier = "C:Toto.Txt" Ff = FreeFile Open MonFichier For Binary As Ff Str = String$(LOF(Ff), Chr$(0)) Get #Ff, , Str Close #Ff NombreDeLigne = UBound(Split(Str, vbCrLf))
-- Enjoy !
EddiGordo
"Nicolas" a exprimé avec précision :
Ca ne fonctionne que pour des tres petits fichiers, le mien fait 30000 lignes et 2000 colonnes, que faire ?
Nicolas
Heu...
Je ne comprends pas... Je viens d'essayer avec un fichier texte de 27 Mégas, 67559 lignes de 415 caractères... Ca fonctionne nickel chez moi Si ce n'est qu'il mets à peu près 3 ou 4 secondes à me répondre...
-- Enjoy !
"Nicolas" a exprimé avec précision :
Ca ne fonctionne que pour des tres petits fichiers, le
mien fait 30000 lignes et 2000 colonnes, que faire ?
Nicolas
Heu...
Je ne comprends pas...
Je viens d'essayer avec un fichier texte de 27 Mégas, 67559 lignes de
415 caractères...
Ca fonctionne nickel chez moi
Si ce n'est qu'il mets à peu près 3 ou 4 secondes à me répondre...
Ca ne fonctionne que pour des tres petits fichiers, le mien fait 30000 lignes et 2000 colonnes, que faire ?
Nicolas
Heu...
Je ne comprends pas... Je viens d'essayer avec un fichier texte de 27 Mégas, 67559 lignes de 415 caractères... Ca fonctionne nickel chez moi Si ce n'est qu'il mets à peu près 3 ou 4 secondes à me répondre...
-- Enjoy !
Nicolas
Ca ne fonctionne que pour des tres petits fichiers, le mien fait 30000 lignes et 2000 colonnes, que faire ?
Nicolas
-----Message d'origine----- "Nicolas" avait énoncé :
Bonjour,
Je cherche à récupérer le nombre de lignes d'un fichier texte sans avoir à le balayer avec un code du genre :
Dim Ligne as String Dim i as Integer Open "fichier.txt" For Input As #1 Do Until EOF(1) i = i + 1 Line Input #1, Ligne Loop Close #1 MsgBox i & " lignes"
Merci d'avance et bonne prog
Nicolas
Bonjour
Tu peux peut-être compter le nombre de retour chariot du
fichier, cela
devrait fonctionner pour la plupart des cas...
Dim Ff As Long, Str As String, MonFichier As
String,
NombreDeLigne As Long MonFichier = "C:Toto.Txt" Ff = FreeFile Open MonFichier For Binary As Ff Str = String$(LOF(Ff), Chr$(0)) Get #Ff, , Str Close #Ff NombreDeLigne = UBound(Split(Str, vbCrLf))
-- Enjoy !
.
Ca ne fonctionne que pour des tres petits fichiers, le
mien fait 30000 lignes et 2000 colonnes, que faire ?
Nicolas
-----Message d'origine-----
"Nicolas" avait énoncé :
Bonjour,
Je cherche à récupérer le nombre de lignes d'un fichier
texte sans avoir à le balayer avec un code du genre :
Dim Ligne as String
Dim i as Integer
Open "fichier.txt" For Input As #1
Do Until EOF(1)
i = i + 1
Line Input #1, Ligne
Loop
Close #1
MsgBox i & " lignes"
Merci d'avance et bonne prog
Nicolas
Bonjour
Tu peux peut-être compter le nombre de retour chariot du
fichier, cela
devrait fonctionner pour la plupart des cas...
Dim Ff As Long, Str As String, MonFichier As
String,
NombreDeLigne As Long
MonFichier = "C:Toto.Txt"
Ff = FreeFile
Open MonFichier For Binary As Ff
Str = String$(LOF(Ff), Chr$(0))
Get #Ff, , Str
Close #Ff
NombreDeLigne = UBound(Split(Str, vbCrLf))
Ca ne fonctionne que pour des tres petits fichiers, le mien fait 30000 lignes et 2000 colonnes, que faire ?
Nicolas
-----Message d'origine----- "Nicolas" avait énoncé :
Bonjour,
Je cherche à récupérer le nombre de lignes d'un fichier texte sans avoir à le balayer avec un code du genre :
Dim Ligne as String Dim i as Integer Open "fichier.txt" For Input As #1 Do Until EOF(1) i = i + 1 Line Input #1, Ligne Loop Close #1 MsgBox i & " lignes"
Merci d'avance et bonne prog
Nicolas
Bonjour
Tu peux peut-être compter le nombre de retour chariot du
fichier, cela
devrait fonctionner pour la plupart des cas...
Dim Ff As Long, Str As String, MonFichier As
String,
NombreDeLigne As Long MonFichier = "C:Toto.Txt" Ff = FreeFile Open MonFichier For Binary As Ff Str = String$(LOF(Ff), Chr$(0)) Get #Ff, , Str Close #Ff NombreDeLigne = UBound(Split(Str, vbCrLf))
-- Enjoy !
.
EddiGordo
"Zoury" a pensé très fort :
Salut à vous! :O)
Tu peux peut-être compter le nombre de retour chariot du fichier, cela devrait fonctionner pour la plupart des cas... NombreDeLigne = UBound(Split(Str, vbCrLf))
tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et non le nombre d'éléments que contient celui-ci..
Tu peux peut-être compter le nombre de retour chariot du fichier, cela
devrait fonctionner pour la plupart des cas...
NombreDeLigne = UBound(Split(Str, vbCrLf))
tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et non
le nombre d'éléments que contient celui-ci..
Tu peux peut-être compter le nombre de retour chariot du fichier, cela devrait fonctionner pour la plupart des cas... NombreDeLigne = UBound(Split(Str, vbCrLf))
tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et non le nombre d'éléments que contient celui-ci..
Tu peux peut-être compter le nombre de retour chariot du fichier, cela devrait fonctionner pour la plupart des cas... NombreDeLigne = UBound(Split(Str, vbCrLf))
tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et non le nombre d'éléments que contient celui-ci..
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Salut à vous! :O)
Tu peux peut-être compter le nombre de retour chariot du fichier, cela
devrait fonctionner pour la plupart des cas...
NombreDeLigne = UBound(Split(Str, vbCrLf))
tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et non
le nombre d'éléments que contient celui-ci..
Tu peux peut-être compter le nombre de retour chariot du fichier, cela devrait fonctionner pour la plupart des cas... NombreDeLigne = UBound(Split(Str, vbCrLf))
tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et non le nombre d'éléments que contient celui-ci..
Merci de poster les réponses au groupe afin d'en faire profiter à tous
Patrice Henrio
Parce que dans le cas de Split, le tableau renvoyé commence à 0, même avec option base = 1. Sinon avec Option base = 1, l'indice le plus haut correspond bien au nombre d'éléments Plus généralement le nombre d'élément d'un tableau vaut Ubound(T)-Lbound(T)+ 1
"EddiGordo" a écrit dans le message de news:
"Zoury" a pensé très fort : > Salut à vous! :O) > >> Tu peux peut-être compter le nombre de retour chariot du fichier, cela >> devrait fonctionner pour la plupart des cas... >> NombreDeLigne = UBound(Split(Str, vbCrLf)) > > > tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et
non
> le nombre d'éléments que contient celui-ci.. > > '*** > NombreDeLigne = UBound(Split(Str, vbNewLine)) + 1 > '*** Bonjour
Effectivement... Mea culpa
et merci
-- Enjoy !
Parce que dans le cas de Split, le tableau renvoyé commence à 0, même avec
option base = 1. Sinon avec Option base = 1, l'indice le plus haut
correspond bien au nombre d'éléments
Plus généralement le nombre d'élément d'un tableau vaut
Ubound(T)-Lbound(T)+ 1
"EddiGordo" <EddiGordo@fr.st> a écrit dans le message de
news:mesnews.1bb67d3b.0494a663.19.0@fr.st...
"Zoury" a pensé très fort :
> Salut à vous! :O)
>
>> Tu peux peut-être compter le nombre de retour chariot du fichier, cela
>> devrait fonctionner pour la plupart des cas...
>> NombreDeLigne = UBound(Split(Str, vbCrLf))
>
>
> tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et
non
> le nombre d'éléments que contient celui-ci..
>
> '***
> NombreDeLigne = UBound(Split(Str, vbNewLine)) + 1
> '***
Bonjour
Parce que dans le cas de Split, le tableau renvoyé commence à 0, même avec option base = 1. Sinon avec Option base = 1, l'indice le plus haut correspond bien au nombre d'éléments Plus généralement le nombre d'élément d'un tableau vaut Ubound(T)-Lbound(T)+ 1
"EddiGordo" a écrit dans le message de news:
"Zoury" a pensé très fort : > Salut à vous! :O) > >> Tu peux peut-être compter le nombre de retour chariot du fichier, cela >> devrait fonctionner pour la plupart des cas... >> NombreDeLigne = UBound(Split(Str, vbCrLf)) > > > tu dois ajouter 1 car UBound() te renvoit le dernier index du tableau et
non
> le nombre d'éléments que contient celui-ci.. > > '*** > NombreDeLigne = UBound(Split(Str, vbNewLine)) + 1 > '*** Bonjour