2009-04-03 7 views

Antwort

3

Sie müssten die Datei öffnen, in jeder Zeile zu lesen, die Zählung zu erhalten:

var lines = File.ReadAllLines(filename); 
var count = lines.Length; 
7

Von MSDN:

int counter = 0; 
string line; 

// Read the file and display it line by line. 
System.IO.StreamReader file = 
    new System.IO.StreamReader("c:\\test.txt"); 
while((line = file.ReadLine()) != null) 
{ 
    Console.WriteLine (line); 
    counter++; 
} 

file.Close(); 
10

Sie tun können:

System.IO.File.ReadAllLines("path").Length 

bearbeiten

Wie Joe hervorhebt, habe ich die gesamte Standardfehlerbehandlung weggelassen und nicht gezeigt, dass Sie dann dasselbe Array verwenden würden, um den Rest Ihres Codes zu verarbeiten.

+0

upvote für ReadAllLines, aber ich würde tatsächlich das Array irgendwo speichern, da er es bald wieder benötigt und überprüfen Sie die Länge des gespeicherten Arrays. –

+0

Ich war gerade dabei, eine CYA-Klausel zu schreiben, die ich dann komplett weggelassen habe. Danke – JoshBerke

+0

Nur vorsichtig mit der Dateigröße und ReadAllLines, könnte Speicherprobleme auftreten. Nicht wirklich anwendbar mit diesem Q, da die ganze Datei trotzdem eingelesen wird. Aber normalerweise muss etwas beobachtet werden, besonders wenn Sie die Datei nicht kontrollieren. – Richard

2

Es kann eine effizientere Möglichkeit für größere Dateien sein, aber man konnte mit so etwas wie starten:

int l_rowCount = 0; 
string l_path = @"C:\Path\To\Your\File.txt"; 
using (StreamReader l_Sr = new StreamReader(l_path)) 
{ 
    while (l_Sr.ReadLine()) 
     l_rowCount++; 
} 
2

wäre es wahrscheinlich sinnvoll sein, mehr für Sie tatsächlich die Datei zu öffnen, lesen Sie die Zeilen in einer Liste , dann erstellen Sie Ihr 2D-Array.

List<string> lines = new List<string>() 

using(System.IO.StreamReader file = new System.IO.StreamReader(fileName)) 
{ 
    while(!file.EndOfStream) lines.Add(file.ReadLine()); 
} 

Sie können dann Ihre lines Liste verwenden, um Ihre Array zu erstellen.

4
int counter = 0; 
string line; 

System.IO.StreamReader file = new System.IO.StreamReader("c:\\t1.txt"); 
while((line = file.ReadLine()) != null) 
{ 
    counter++; 
} 
file.Close(); 

Zähler gibt Ihnen die Anzahl der Zeilen. Sie können mit der Schleife auch eine Zeile in Ihr Array einfügen.

+1

@Mutant: Sie erhalten mehr Upvotes, wenn Sie die Datei in einen using-Block stellen. –

-1

könnten Sie gehen mit etwas exotischere wie eine Linq-Anweisung

Count * von Text-Datei

so etwas?

Verwandte Themen