Cuantas lineas tiene un CSV ?


([N4] Ramon Denuc) #1

Hola Foro,

Estoy intentando averiguar como puedo saber cuantas lineas tiene un archivo .CSV sin tener que cargarlo previamente, lo estoy intentando saber por no tener que abrir dos veces el archivo para saber en primer lugar cuantas lineas ahí, y en segundo lugar para procesarlo.

¿Alguna idea?

Saludos,


([N2] AyudaVelneo) #2

Hola Ramón:

Creo que no se puede saber las líneas que tiene un .csv sin cargarlo previamente.

Una pregunta, ¿Para qué necesitas saber las líneas que tiene antes de procesarlo?

Un saludo


([N4] Ramon Denuc) #3

Hola Francisco,

No es nada importante, pero en las importaciones me gustaría hacer una Barra de Progreso, para que el usuario final pudiera ver el estado de la importación.

Saludos


([N4] victorgt) #4

Hola:

Si las lineas del CSV tienen un tamaño constante, o puedes conseguir un buen “promedio”, puedes aproximarte al nº de lineas conociendo el tamaño del fichero en bytes, sin abrirlo.

Quiza sea suficiente para una barra de progreso :wink:


([N4] victorgt) #5

Hola:

Si las lineas del CSV tienen un tamaño constante, o puedes conseguir un buen “promedio”, puedes aproximarte al nº de lineas conociendo el tamaño del fichero en bytes, sin abrirlo.

O tambien puedes hacerlo en bytes directamente: coges como total el tamaño del fichero y como avance en cada linea en nº de bytes de esta. Esto yo ya lo hice alguna vez…

Quiza sea suficiente para una barra de progreso :wink:


([N2] ramiro) #6

Buenas:

Abrirlo en modo solo lectura y recorrerlo dentro de un bucle For que lea línea a linea es rapidísimo.

El último valor del For con linea no nula será el número de lineas
Salir del For tras x líneas vacías consecutivas.

Para 100.000 líneas no creo que tarde más de 1 segundo…

Saludos. Ramiro


([N1] vgegeo) #7

Hola,
Si, es bastante rapido.
Yo lo utilizo para ficheros con N lineas inferior a 1000, con un for, para que si hay linea suma +1 a una variable y despues pregunto al usuario si quiere procesar ese numero de lineas, mas que nada por si no coincide con lo que espera, pueda cancerlar, y como dice Ramiro, es rapidisimo.
Si el usuario quiere procesarlo, continuo con otro for ya para el proceso de importacion.

Saludos


([N4] Ramon Denuc) #8

Hola,

Pues nada con vuestros comentarios, lo tengo muy claro, haré lo que dice Ramiro.

Muchísimas gracias.

Saludos