Instrucción Open

Abre un canal de datos.

Sintaxis:

Open FileName As String [For Mode] [Access IOMode] [Protected] As [#]FileNumber As Integer [Len = DatasetLength]

Parámetros:

FileName: Nombre y ruta del archivo que quiere abrir. Si intenta leer un archivo que no existe (Access = Read), aparecerá un mensaje de error. Si intenta escribir un archivo que no existe (Access = Write), se creará un archivo nuevo.

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

IOMode: Palabra clave que define el tipo de acceso. Valores válidos: «Read» (solo lectura), «Write» (solo escritura), «Read Write» (ambos).

Protected: 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) y «Lock Read Write» (impide el acceso al archivo).

FileNumber: cualquier expresión entera, de 0 a 511, que indica el número de un canal de datos libre. A continuación 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.

DatasetLength: Para los archivos de acceso aleatorio, establece la longitud de los registros.

Icono de nota

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:\data.txt"

    iNumber = Freefile

    Open aFile For Output As #iNumber

    Print #iNumber, "Este es un renglón de texto"

    Print #iNumero, "Esta es otra línea 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