Leer linea por linea un archivo de texto mediante un bucle

Pedro
09 de Diciembre del 2003
Tengo un archivo de texto con un numero de lineas q no conozco y deseo leerlo linea por linea. Lo que yo intente es lo siguiente:

Dim L(1 To 60) As Integer
fn = FreeFile
Open "a.txt" For Input As #fn
For i = 0 To Val(Text1.Text)
Line Input #fn, L(i)
Next i
Close #fn

Pero me da un error diciendo "Type Mismatch" alguien sabe porq?? o alguna otra manera de leerlo linea por linea aunque no sepas el numero total de lineas q tenga?

Baltasar
09 de Diciembre del 2003
Hay varios errores:

el array que estás usando ha de ser de Strings: dim L(1 to 60) as string

el array lo has creado de 1 a 60, pero luego comienzas por el 0, debería ser: for i =1 to val . . . o poner el array desde 0 DIM L(0 to 60) as string


en esta línea: For i = 0 to val text1.text qué valor hay en text1 ?

de cualquier manera, lo que preguntas es cómo saber el número de líneas, supongo que es para saber cuándo dejar de leer líneas, verdad?

SI es eso, lo que has de hacer es usar EOF, de esta manera:

pon un Listbox en el formulario y el siguiente código

Private Sub Form_Load()
Dim L() As String
Dim i As Long
fn = FreeFile
Open "c:prueba.txt" For Input As #fn
Do While Not EOF(fn)
ReDim Preserve L(i) As String
Line Input #fn, L(i)
i = i + 1
Loop
Close #fn

' y ahora para comprobar el contenido de L:

For i = 0 To UBound(L)
List1.AddItem L(i)
Next i

End Sub


Anonimo
09 de Diciembre del 2003
Mira te doy solo una parte del código lo otro descubrelo tu mismo. ( "este codigo es el que uso más")
Do While eof( archivo )
'sentencias que debes descubrir
loop

Baltasar
09 de Diciembre del 2003
Anónimo, precisamente lo has puesto al revés de como debe ser, que realmente sería:

do while NOT eof(archivo)
' leer línea por línea
loop

Saludos