none
Contar y eliminar lineas de un archivo de texto

    Question

  • Requiero hacer un script que me lea un archivo de texto (un log de un servidor) y cuente las lineas, si las lineas son mas de 1000 que elimine las primeras hasta dejar solo 1000 lineas... las 1000 lineas finales.... alguna idea?!
    Wednesday, May 18, 2011 4:13 PM

All replies

  • Tengo esto que me cuenta el numero de lineas

     

    Const ForReading = 1

    Set objFSO = CreateObject("Scripting.FileSystemObject")
    Set objTextFile = objFSO.OpenTextFile _
      ("serverlog.txt", ForReading)

    objTextFile.ReadAll
     Wscript.Echo "Numero de Lineas=" & objTextFile.Line

     

    Aun me falta eliminar las priemeras lineas y que solo me deje 1000

    Wednesday, May 18, 2011 4:54 PM
  • Si tienes salto de línea al final de cada línea, puedes:

    Leer el archivo y cargarlo en un arreglo o matríz; cierra el archivo de texto.

    vMax=longuitud del arreglo o filas en el mismo

    si vMax>1000

    deSde=vMax-1000

    Limpiar archivo de texto

    comenzar a recorrer el arreglo a partir de deSde y empezar a escribir en archivo de texto

    cerrarlo

    Wednesday, May 18, 2011 6:58 PM
  • Algo parecido a
        Set fso = CreateObject("Scripting.FileSystemObject")
        Set f = fso.GetFile(RutaFichero)
        Set ts = f.openastextstream(1, -2)
            linea = ts.readall
        ts.Close
        Set fso = Nothing
        Set f = Nothing
       
        vector = Split(linea, Chr(13))
        If IsArray(vector) Then
            lMax = UBound(vector, 2)
            If lMax > 1000 Then
                Set f = fso.GetFile(RutaFichero)
                Set ts = f.openastextstream(8, -2)
                deSde = lMax - 1000
                For k = deSde To lMax
                    ts.Write vector(k) & vbCrLf
                Next k
                ts.Close
            End If
        End If
    Wednesday, May 18, 2011 7:10 PM