Palabras clave: líneas, filas, fichero, archivo, texto, txt
Autor: Rubén Vigón
Extraído de: Foro MVP-Access
Antecedentes
Se necesita una función para averiguar la cantidad de líneas de un fichero de texto. Por la red encontramos este código (se obvian declaraciones de variables):
f = FreeFile
Open Me!PathA1 For Input As #f
linea = 0
Do Until EOF(f)
Line Input #f, strLineaIn
linea = linea + 1
Loop
Close #f
lngTotalRegistros = linea
Para un fichero con 10000 líneas se tarda aproximadamente 2.5 segundos (seguro que la potencia de la máquina influye) en obtener la cantidad de registros.
¿Hay una forma más rápida? Pues sí: este propuesto por Rubén Vigón.
Function fntDameLineasFichero(ByVal strRuta As String) As Long
Dim f As Integer
Dim strTexto As String
Dim arrLineas() As String
f = FreeFile
Open strRuta For Input As #f
strTexto = Input(LOF(f), #f)
Close #f
arrLineas = Split(strTexto, vbNewLine)
fntDameLineasFichero = UBound(arrLineas) - LBound(arrLineas) + 1
Erase arrLineas
End Function
Para el mismo fichero devuelve la respuesta en 0.035 segundos