Comenzar a leer un txt file desde cierta fila.

Hola tengo un archivo texto que lee el siguiente código. El problema que el txt file tiene un header, donde cada fila Inicia con la letra H.

ejemplo.

H00 SPS format version num. SPS001,08OCT1990 (SHELL EP 90-2935);

Entonces quiero añadir algo al siguiente código para comenzar a leer el archivo desde la fila 38, O a su vez eliminar todas las filas que contengan H al inicio de la fila, esto seria mejor pues el header puede incluir mas lineas y entonces ya no seria la fila 38 donde comenzaria a leer el archivo, entonces si es posible pueden ayudarme a modificar el siguiente código.. Todos los datos que quiero leer comienzan con la letra S

ejemplo

S 2278121065 1 888291.9 1873527.7 13.9 1178

este es el código que tengo hasta e momento y funciona para otro archivo que no tiene header.

rw = 1
Sheets("offset_data_base").Select
Open fileToOpen For Input As 1
Do While Not EOF(1)
Line Input #1, Line
If Mid(Line, 1, 1) = "S" Then
sta1 = Val(Mid(Line, 2, 10))
sta2 = Val(Mid(Line, 13, 8))
sta3 = Val(Mid(Line, 24, 8))
sta4 = Val(Mid(Line, 57, 6))
sta5 = Val(Mid(Line, 65, 5))
sta6 = Val(Mid(Line, 70, 5))
sta7 = Val(Mid(Line, 76, 4))
Cells(rw, 1) = sta1
Cells(rw, 2) = sta2
Cells(rw, 3) = sta3
Cells(rw, 4) = sta4
Cells(rw, 5) = sta5
Cells(rw, 6) = sta6
Cells(rw, 7) = sta7
rw = rw + 1
End If
Loop
Close

Muchas gracias por su ayuda

1 respuesta

Respuesta
1

Lo que veo en tu código es que no está cargando el contenido de la línea. Si el contenido es un número, no tienes que poner la función val().

Prueba esto:

rw = 1
Sheets("offset_data_base").Select
Open fileToOpen For Input As 1
Do While Not EOF(1)
    Line Input #1, Line
    If UCase(Mid(Line, 1, 1)) = "S" Then
        sta1 = Mid(Line, 2, 10)
        sta2 = Mid(Line, 13, 8)
        sta3 = Mid(Line, 24, 8)
        sta4 = Mid(Line, 57, 6)
        sta5 = Mid(Line, 65, 5)
        sta6 = Mid(Line, 70, 5)
        sta7 = Mid(Line, 76, 4)
        Cells(rw, 1) = sta1
        Cells(rw, 2) = sta2
        Cells(rw, 3) = sta3
        Cells(rw, 4) = sta4
        Cells(rw, 5) = sta5
        Cells(rw, 6) = sta6
        Cells(rw, 7) = sta7
        rw = rw + 1
    End If
Loop
Close

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas