2011-03-02 38 views
5

Jestem kodowanie w C# i przy użyciu Windows Forms. Mam plik tekstowy i chcę policzyć wszystkie znajdujące się w nim wiersze.Policz wiersze w pliku tekstowym

Peter; 25

Jan; 31

Jane; 22

Ów trzy linie i chcę je policzyć na przykład.

Odpowiedz

6

Najlepszym sposobem byłoby użyć czegoś takiego:

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

który będzie działał tylko w .NET 4, ale będą czytać jednej linii na raz. Jeśli jesteś na tyle szczęśliwy, aby wczytać cały plik do pamięci w jednym zamachem, można użyć:

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

Zauważ, że jeśli plik jest duży (czy to na dysku sieciowym etc), może to trwać długo czas, w którym to przypadku chcesz to zrobić z wątku interfejsu użytkownika.

+1

Gdzie jest EnumerateAllLines zdefiniowane? –

+0

Użyłem var count = File.ReadAllLines ("file.txt"). Length; i działało świetnie dzięki dużo! –

+0

@Simon: Mój błąd, to File.ReadLines. Naprawiłem odpowiedź. Nadal jednak tylko z .NET 4. –

2

Jeśli plik nie jest zbyt duży, można to zrobić:

File.ReadAllLines(filePath).Length; 

(to będzie przeznaczyć cały plik, więc upewnij się, że wydajność nie jest problemem)

+0

Thnaks za answear i zadziałało, ale użyłem answear powyżej. –

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

Powinieneś użyć instrukcji C# przy użyciu lub zadzwoń do Dispose na FileStream –

+0

O tak, nie myślałem o tym :-) Przepraszamy – Morten

Powiązane problemy