problema al leer archivo
Publicado por Omar (3 intervenciones) el 24/01/2008 12:43:15
miren tengo un problema al leer un archivo de texto linea por linea usando ciclos DO LOOP y el EOF y es que siempre se pasa de largo la condicion y aun cuando llega al final del archivo ejecuta una loop mas y eso ya es error veran pondre el codigo que tengo
Dim renglon(8) As String, i As Integer
Dim nCanal As Integer
On Error GoTo error
CommonDialog1.DialogTitle = "Abrir archivo"
CommonDialog1.Filter = "Archivos de Texto (*.txt;*.wri;*.me;*.bbs)|*.txt;*.wri;*.me;*.bbs|Todos los ficheros(*.*)|*.*"
CommonDialog1.ShowOpen
nCanal = FreeFile
Open CommonDialog1.FileName For Binary As #nCanal
Do While Not EOF(nCanal)
Line Input #nCanal, renglon(i)
i = i + 1
Loop
e_nombre.Caption = renglon(1)
Close #nCanal
Exit Sub
error:
e_nombre.Caption = "error"
Exit Sub
el chiste es que en la etiqueta e_nombre aparesca lo que este escrito en el primer renglon despues de leer todo el archivo, para probar si habia error puse que la etiqueta marcara error si asi lo hubiese y pues si me escribe la palabra error, al depurar el codigo paso a paso llego al ciclo DO LOOP el archivo que leo es de 8 renglones entonces el loop se hace 8 veces y cuando llegue la novena en teoria del Do While Not EOF(nCanal) deberia saltar a la siguiente instruccion despues de loop por que ya no se cumple con la condicion, pero no es asi se vuelve a ejecutar una ves mas el ciclo y al momento de estar en Line Input #nCanal, renglon(i) pasa el error de que estoy leyendo mas alla del final de archivo, esto me tiene un poco confundido por que he revisado muchos foros y en todos los ejemplos siempre dan un ciclo parecido pero no he leido quejas, asi que no se si sea yo realmente o algun detalle que se me este escapando, podrian ayudarme con eso porfabor
Dim renglon(8) As String, i As Integer
Dim nCanal As Integer
On Error GoTo error
CommonDialog1.DialogTitle = "Abrir archivo"
CommonDialog1.Filter = "Archivos de Texto (*.txt;*.wri;*.me;*.bbs)|*.txt;*.wri;*.me;*.bbs|Todos los ficheros(*.*)|*.*"
CommonDialog1.ShowOpen
nCanal = FreeFile
Open CommonDialog1.FileName For Binary As #nCanal
Do While Not EOF(nCanal)
Line Input #nCanal, renglon(i)
i = i + 1
Loop
e_nombre.Caption = renglon(1)
Close #nCanal
Exit Sub
error:
e_nombre.Caption = "error"
Exit Sub
el chiste es que en la etiqueta e_nombre aparesca lo que este escrito en el primer renglon despues de leer todo el archivo, para probar si habia error puse que la etiqueta marcara error si asi lo hubiese y pues si me escribe la palabra error, al depurar el codigo paso a paso llego al ciclo DO LOOP el archivo que leo es de 8 renglones entonces el loop se hace 8 veces y cuando llegue la novena en teoria del Do While Not EOF(nCanal) deberia saltar a la siguiente instruccion despues de loop por que ya no se cumple con la condicion, pero no es asi se vuelve a ejecutar una ves mas el ciclo y al momento de estar en Line Input #nCanal, renglon(i) pasa el error de que estoy leyendo mas alla del final de archivo, esto me tiene un poco confundido por que he revisado muchos foros y en todos los ejemplos siempre dan un ciclo parecido pero no he leido quejas, asi que no se si sea yo realmente o algun detalle que se me este escapando, podrian ayudarme con eso porfabor
Valora esta pregunta


0