Les Snippets

Connexion

Compter le nombre de lignes d'un fichier

Niveau requis pour utiliser/comprendre cette source : 1 ( Débutant )
Créé le 06/11/2008 17:01:45 et initié par PCPT [Liste]
Date de mise à jour : 07/11/2008 12:35:36
Vue : 9177
Catégorie(s) : Fichier / Disque, Chaîne de caractères
Langages dispo pour ce code :
- VB6, VBA
- VB 2005, VB 2008, VB.NET 1.x
- C# 2.x
- VBA
- Delphi 5
- VB 2008



Langage : VB6 , VBA
Date ajout : 06/11/2008
Posté par PCPT [Liste]
DateMAJ : 06/11/2008
'méthode rapide, ne permet  pas l'accès à des fichiers trop volumineux
Public Function CountFileLines(ByVal sPath As String) As Long
    Dim FF As Integer
    
    On Local Error GoTo Err_Handler
    FF = FreeFile
    Open sPath For Input As #FF
        On Local Error Resume Next
        CountFileLines = UBound(Split(Input(LOF(FF),  #FF), vbCrLf)) + 1
    Close #FF
    Exit Function
    
Err_Handler:
    Err.Clear
    CountFileLines = -1
End Function

'méthode un peu  plus lente, permettant l'ouverture de fichiers plus volumineux
Public Function CountFileLines(ByVal sPath As String) As Long
    Dim FF As Integer, sTemp As String
    On Local Error GoTo Err_Handler
    CountFileLines = 0
    FF = FreeFile
    Open sPath For Input As #FF
        Do While Not EOF(FF)
            Line Input #1, sTemp
            CountFileLines = CountFileLines + 1
        Loop
    Close #FF
    Exit Function
    
Err_Handler:
    Err.Clear
    CountFileLines = -1
End Function

Remarque :
la première méthode est pratique uniquement pour les petits fichiers, mais le chargera intégralement en mémoire

la 2e méthode risque d'être plus longue (pas sensible sur un fichier d'1 ou 2 Mo), mais ne fait que compter
Langage : VB.NET 1.x , VB 2005 , VB 2008
Date ajout : 07/11/2008
Posté par jrivet [Liste]
DateMAJ : 07/11/2008
    Public Function CountFileLines(ByVal FileName As StringAs Integer
        Dim buffer(32 * 1024As Char
        Dim reader As System.IO.TextReader
        Dim i As Integer
        Dim read As Integer
        Dim total As Integer = 0
        'si le fichier existe
        If System.IO.File.Exists(FileName) Then
            'on ouvre le fichier
            reader = System.IO.File.OpenText(FileName)
            read = reader.Read(buffer, 0, buffer.Length)
            While (read > 0)
                i = 0
                While i < read
                    If buffer(i) = Chr(10Then total += 1
                    i += 1
                End While
                read = reader.Read(buffer, 0, buffer.Length)
            End While
            If Not buffer(i - 1= Chr(10Then total += 1 'facultatif, pour les fichiers avec un dernier retour chariot
            'nettoyage
            Erase buffer
            reader.Close()
            reader.Dispose()
            reader = Nothing
        End If
        Return total
    End Function
'   la fonction CHR venant de VB6, on évite la référence Microsoft.VisualBasic
    Private Function Chr(ByVal CharCode As IntegerAs Char
        Return Char.ConvertFromUtf32(CharCode)
    End Function
Langage : C# 2.x
Date ajout : 07/11/2008
Posté par jrivet [Liste]
DateMAJ : 07/11/2008
        static long CountLines(string fileName)
        {
            char[] buffer = new char[32 * 1024]; //lit 32K char à chaque fois
            System.IO.TextReader reader;
            int total = 1; //tout fichier contient au moins une ligne
            int read;
            if (System.IO.File.Exists(fileName))
            {
                reader = System.IO.File.OpenText(fileName);
                while ((read=reader.Read(buffer, 0, buffer.Length)) > 0)
              {
                  for (int i = 0; i < read; i++)
                    {
                        if (buffer[i] == '\n')
                        {
                            total++;
                        }
                    }
                 }
                //nettoyage des variables
                reader.Close();
                reader.Dispose();
                reader = null;
            }
            return total;
        }
//exemple d'utilisation :
         MessageBox.Show(CountLines(@"C:\AVANCE.LOG").ToString());

Remarque :
Snippet inspiré de cette discution :
http://bytes.com/forum/thread439009.html
Langage : VBA
Date ajout : 07/11/2008
Posté par bigfish_le vrai [Liste]
Function GetNbLineInFile(ByVal Chemin As String, ByVal NomFichier As String) As Long
    Const ForAppending = 8
    Dim fs As Object, File As Object
    If Not Dir(Chemin & NomFichier) = Empty Then
        Set fs = CreateObject("Scripting.FileSystemObject")
        Set File = fs.OpenTextFile(Chemin & NomFichier, ForAppending)
            GetNbLineInFile = File.Line - 1
        File.Close
        Set fs = Nothing
    End If
End Function

Langage : Delphi 5
Date ajout : 11/11/2008
Posté par f0xi [Liste]
function CountFileLines(const FileName: string): integer;
begin
  with TStringList.Create do
  try
    LoadFromFile(FileName);
    result := Count;
  finally
    Free;
  end;
end;
Langage : VB 2008
Date ajout : 01/02/2010
Posté par tresorsdevie [Liste]

Imports System.IO


'Pour le nombre de lignes :
Dim tablignes() As String = File.ReadAllLines("monfichier.txt")
Dim nbrLignes = tablignes.Length


'Pour le nombre de mots :
Dim tabMot = File.ReadAllText("monfichier.txt")
Dim mots() As String = tabMot.Split(vbCr, VbLf, vbTab, " "C) 'la liste entre parenthese contient tout les separateur possible de mot de votre fichier



Snippets en rapport avec : Fichier, Lignes, Compter, Nombre



Codes sources en rapport avec : Fichier, Lignes, Compter, Nombre

{Python} FONCTION COMPTER LE NOMBRE DE LIGNE
Bonjour, ma première fonction que je poste ... Pour les gros débutant (dont je fais parti) je pense ...

{Visual Basic, VB6, VB.NET, VB 2005} LE NOMBRE DE LIGNE DANS UN FICHIER TEXTE
Comment connaître le nombre de ligne dans un fichier Texte Mettez ce code dans un Bouton_Click :...

{PHP} COMPTER LE NOMBRE DE FICHIERS DANS UN DOSSIER
Après pas mal de recherche, je n'ai pas réellement trouvé un code qui me convenait. J'ai donc trouvé...

{C / C++ / C++.NET} NOMBRE DE LIGNES ET DE COLONNES D'UN FICHIER
Voici ma première source, qui permet de trouver le nombre de colonnes et de lignes d'un fichier avec...

{Visual Basic, VB6, VB.NET, VB 2005} PARCOURIR TOUS LES FICHIERS ET SOUS RÉPERTOIRES D'UN RÉPERTOIRE RACINE
Ce code permet de parcourir tous les sous-dossiers et les fichiers dans un répertoire racine, en ten...

{Delphi} RECHERCHER LES PREMIERS NOMBRES PREMIERS
Tout est dans le titre ce petit programme permet de chercher beaucoup de nombre premier. On part de ...

{Visual Basic, VB6, VB.NET, VB 2005} CALCUL DE LA FACTORIELLE D'UN NOMBRE AVEC TOUS SES CHIFFRES (AUCUNE LIMITE !)
Ce code permet de calculer la factorielle d'un nombre et de stocker le résultat dans un fichier *.tx...

{ColdFusion} NOMBRE DE FICHIERS
Ce bout de code permet de connaître le nombre de fichiers présents dans un dossier donné (ex. : dans...

{ASP / ASP.NET} UN COMPTEUR DE VISITEUR...
Ce compteur de visiteur sauvegarde les données dans \compteur.txt ...

{Visual Basic, VB6, VB.NET, VB 2005} SCRIPT EN VBS QUI DÉCOUPE UN FICHIER EN PLUSIEURS FICHIERS DE X LIGNES.
Ce script permet de découper un fichier en plusieurs fichiers de x lignes. Je l'utilise assez souve...