2011-03-02 6 views
5

Je suis en train de coder en C# et d'utiliser Windows Forms. J'ai un fichier texte et je veux compter toutes les lignes qui s'y trouvent.Nombre de lignes dans un fichier texte

Peter, 25

John, 31

Jane, 22

trois lignes de Thats et je veux les compter par exemple.

Répondre

6

La meilleure façon serait d'utiliser quelque chose comme:

var count = File.ReadLines("file.txt").Count(); 

Cela ne fonctionne que dans .NET 4, mais lire une seule ligne à la fois. Si vous êtes assez heureux de charger le fichier entier en mémoire en une seule fois, vous pouvez utiliser:

var count = File.ReadAllLines("file.txt").Length; 

Notez que si le fichier est volumineux (ou il est sur un lecteur réseau, etc.), cela pourrait prendre une longue temps, auquel cas vous voudriez le faire sur le fil de l'interface utilisateur.

+1

Où est EnumerateAllLines défini? –

+0

J'ai utilisé var count = File.ReadAllLines ("file.txt"). Length; et cela a fonctionné super merci beaucoup! –

+0

@Simon: Mon erreur, c'est File.ReadLines. J'ai corrigé la réponse. Toujours seulement à partir de .NET 4 cependant. –

2

Si le fichier est pas trop grand, vous pouvez le faire:

File.ReadAllLines(filePath).Length; 

(cela va affecter tout le fichier, alors assurez la performance que n'est pas un problème)

+0

Thnaks pour l'answear et ça a marché mais j'ai utilisé les answear ci-dessus. –

1
 string fileName = @"X:\Testfolder\countthis.txt"; 
     int lineCount = 0; 

     FileStream fs = new FileStream(fileName, FileMode.Open, FileAccess.Read); 

     StreamReader reader = new StreamReader(fs); 
     Assert.Fail(); 

     while (reader.ReadLine() != null) 
      lineCount++; 
     return lineCount; 
+0

Vous devriez utiliser C# en utilisant la déclaration ou assurez-vous que vous appelez Dispose sur le FileStream –

+0

Oh oui, je n'ai pas pensé à ça :-) Désolé – Morten

Questions connexes