Contenido

# Instrucción Open

Abre un canal de datos.

### Sintaxis:

    Open pathname For mode [Access io] [locking] As [#]filenum [Len=recLen]

### Parámetros:

pathname: Ruta y nombre del archivo para abrir. Si intenta leer un archivo que no existe (Access = Read), aparece un mensaje de error. Si intenta escribir en un archivo que no existe (Access = Write), se crea un nuevo archivo.

mode: palabra clave que especifica el modo del archivo. Valores válidos: Append (añadir a un archivo secuencial), Binary (se puede acceder a los datos por bytes utilizando Get y Put), Input (abre un canal de datos para lectura), Output (abre un canal de datos para escritura) y Random (edita archivos relativos).

io: palabra clave que define el tipo de acceso. Valores válidos: Read (solo lectura), Write (solo escritura), Read Write (ambos).

locking: palabra clave que define el estado de seguridad de un archivo después de su apertura. Valores válidos: Shared (otras aplicaciones pueden abrir el archivo), Lock Read (el archivo está protegido contra lectura), Lock Write (el archivo está protegido contra escritura), Lock Read Write (deniega el acceso al archivo).

filenum: cualquier entero entre 0 y 511 para indicar el número de un canal de datos libre. Luego puede pasar órdenes a través del canal de datos para acceder al archivo. El número de archivo debe determinarlo la función FreeFile inmediatamente antes de la instrucción Open.

recLen: Para acceso Random a archivos, establezca la longitud de los registros.

Solo se puede modificar el contenido de los archivos que se hayan abierto con la instrucción Open. Si intenta abrir un archivo que ya está abierto, aparecerá un mensaje de error.

### Ejemplo:

      Sub ExampleWorkWithAFile
          Dim iNumber As Integer
          Dim sLine As String
          Dim aFile As String
          Dim sMsg As String
          aFile = "C:\Users\ThisUser\data.txt"
          iNumber = Freefile
          Open aFile For Output As #iNumber
          Print #iNumber, "Este es un renglón de texto"
          Print #iNumero, "Este es otro renglón de texto"
          Close #iNumber
          iNumber = Freefile
          Open aFile For Input As iNumber
          While Not eof(iNumber)
              Line Input #iNumber, sLine
              If sLine <>"" Then
                  sMsg = sMsg & sLine & chr(13)
              End If
          Wend
          Close #iNumber
          MsgBox sMsg
      End Sub

      Sub ExampleWorkWithAFile
          Dim iNumber As Integer
          Dim sLine As String
          Dim aFile As String
          Dim sMsg As String
          aFile = "~/data.txt"
          iNumber = Freefile
          Open aFile For Output As #iNumber
          Print #iNumber, "Este es un renglón de texto"
          Print #iNumero, "Este es otro renglón de texto"
          Close #iNumber
          iNumber = Freefile
          Open aFile For Input As iNumber
          While Not eof(iNumber)
              Line Input #iNumber, sLine
              If sLine <>"" Then
                  sMsg = sMsg & sLine & chr(13)
              End If
          Wend
          Close #iNumber
          MsgBox sMsg
      End Sub

Si la instrucción Open intenta abrir un archivo para el cual el usuario no tiene permisos de lectura/escritura, se generará un error de E/S.

Temas relacionados

Instrucción Close

Función FreeFile

Instrucción Input#

Instrucción Print#

¡Necesitamos su ayuda!