Autor Tema: Averiguar líneas fichero texto  (Leído 1856 veces)

Desconectado xavi

  • Administrador
  • Habitual
  • *****
  • Mensajes: 204
Averiguar líneas fichero texto
« en: Mayo 10, 2017, 02:56:39 pm »
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):

Código: [Seleccionar]
    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.

Código: [Seleccionar]
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
« Última modificación: Mayo 10, 2017, 03:29:36 pm por xavi »