Cuando introduzco el nombre de una archivo inexistente en una aplicación de VB6.0 me mada error. E igual cuando pulso cancelar.

El código es el siguiente

Private Sub btnAbrir_Click()

Dim nomArch As String
Dim Line(4) As String
nomArch = InputBox("Nombre de archivo")
'Abra el archivo a leer
*Open App.Path & ("/" + nomArch + ".txt") For Input As #1

Error en esta linea (*)

Line Input #1, Line(1)
Line Input #1, Line(2)
Line Input #1, Line(3)
Line Input #1, Line(4)
Text1.Text = Line(1)
Text2.Text = Line(2)
Text3.Text = Line(3)
Text4.Text = Line(4)
Close #1

End sub

Corre bien para archivos existentes. Pero si escribo el nombre de un archivo que no existe o cuando cancelo, me manda error. Ya probé varias alternativas y no funciona. O sea, si no ingreso el nombre de archivo que se especificó en la InputBox, sucede el error.

2 respuestas

Respuesta

Hol.a

Cámbialo así:

Private Sub btnAbrir_Click()
Dim nomArch As String
Dim Line(4) As String
nomArch = InputBox("Nombre de archivo")
If nomArch = "" Then
    MsgBox "Cancelado"
    Exit Sub
End If
On Error GoTo errorarchivo
Open App.Path & ("/" + nomArch + ".txt") For Input As #1
Line Input #1, Line(1)
Line Input #1, Line(2)
Line Input #1, Line(3)
Line Input #1, Line(4)
Text1.Text = Line(1)
Text2.Text = Line(2)
Text3.Text = Line(3)
Text4.Text = Line(4)
Close #1
Exit Sub
errorarchivo:
    MsgBox "No existe el archivo"
End Sub

Comentas

Abraham Valencia

Respuesta

Upps. Hola Abraham. Funciona, pero no me abrió los archivos existentes, me manda el mensaje que pusiste, o sea "el archivo no existe". Algo está mal. Podrías revisarlo

Otro problemita que tengo es con la instrucción Open. La tengo de esta manera:(1) Open App.Path & ("/" + nomArch + ".txt") For Input As #1. Con esta sintaxis siempre me crea los archivos en E:/Carpeta... Donde E es mi USB de memoria y carpeta es donde están los archivos del programa. Como se trata de un programa para un amigo medico que quiere tener las historias clínicas de sus pacientes en su pc. Lo más adecuado seria que tuviera una carpeta en C para guardar sus archivos, o en cualquier otra unidad, ¿No crees? En ese sentido, si yo cambio la instrucción Open dándole en la ruta una unidad, por ejemplo C:/Carpeta + nomArch...

(2) Open App.Path & ("C:/" + nomArch + ".txt") For Input As #1

No me lo soporta, a pesar de que los manuales que he leido me dicen todo lo contrario. Está claro en el código que la variable nomArch es la que recoge el nombre del archivo que se va a guardar o abrir por medio del inputBox("Nombre de archivo"). Pero con eso de que no soporta la instrucción anterior(2), pues no sé en qué unidad le crearía a mi amigo sus archivos este programa. Ya probé varias sintaxis para la instrucción Open, y sólo funciona la instrucción (1) sin asignar ninguna unidad.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas