2011-03-02 19 views
5

Ben C# kodlama ve Windows Forms kullanıyorum. Bir textfile var ve içindeki tüm satırları saymak istiyorum.Satırları bir textfile içinde sayın

Peter; 25

John; 31

Jane; 22

üç Thats hatları ve ben örneğin onları saymak istiyor.

cevap

6

iyi yolu gibi bir şey kullanmak olacaktır: Sadece .NET 4 çalışacak

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

ancak bir seferde tek bir satır okur. tek seferde belleğe tüm dosyayı yüklemek için yeterince mutlu iseniz, kullanabilirsiniz: dosya büyükse (veya herhangi bir şebeke sürücüde bulunuyor) eğer

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

Not, bu işlem uzun sürebilir zaman, bu durumda UI iş parçacığı yapmak isteyeceksiniz. dosya çok büyük değilse

+1

nerede EnumerateAllLines olduğunu tanımlanmış? –

+0

Var count = File.ReadAllLines ("file.txt") kullandım. ve çok teşekkür ederim çok çalıştı! –

+0

@Simon: Benim hatam, File.ReadLines. Cevabı çözdüm. Yine de sadece .NET 4 gibi. –

2

, bunu yapabilirsiniz:

File.ReadAllLines(filePath).Length; 

(bu bütün dosyayı tahsis yüzden emin performans yapacak bir sorun değil)

+0

Cevabın patlamaları ve işe yaradı ama yukarıdaki cevabı kullandım. –

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

C# kullanarak ifadesini kullanmalı veya FileStream –

+0

üzerinde At'ı aradığınızdan emin olmalısınız. Evet, bunu düşünmedim :-) Üzgünüm – Morten

İlgili konular