2011-03-02 29 views
5

Estoy codificando en C# y usando Windows Forms. Tengo un archivo de texto y quiero contar todas las filas que contiene.Contar filas en un archivo de texto

Peter; 25

Juan; 31

Jane; 22

Thats tres líneas y quiero contarlas por ejemplo.

Respuesta

6

La mejor manera sería utilizar algo como:

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

Esto sólo funcionará en .NET 4, pero va a leer una sola línea a la vez. Si eres lo suficientemente feliz para cargar todo el archivo en la memoria de una sola vez, puede utilizar:

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

Tenga en cuenta que si el archivo es grande (o está en una unidad de red, etc.), esta operación puede tardar mucho hora, en cuyo caso querría hacerlo fuera del hilo de la interfaz de usuario.

+1

¿Dónde está EnumerateAllLines definido? –

+0

Utilicé var count = File.ReadAllLines ("file.txt"). Length; y funcionó de maravilla, muchas gracias! –

+0

@Simon: Mi error, es File.ReadLines. He arreglado la respuesta. Sin embargo, solo a partir de .NET 4. –

2

Si el archivo no es demasiado grande, se puede hacer esto:

File.ReadAllLines(filePath).Length; 

(esto va a destinar todo el archivo, por lo que asegúrese de que el rendimiento no es un problema)

+0

Thnaks para el answear y funcionó pero utilicé el answear anterior. –

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

Deberías usar C# usando la declaración o asegurarte de llamar a Dispose en FileStream –

+0

Oh sí, no pensé en eso :-) Lo siento – Morten

Cuestiones relacionadas