Aplicació
Contingut
Índex 🔎︎

# Instrucció Open

Obre un canal de dades.

## Sintaxi:

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

## Paràmetres:

FileName: Nom i camí del fitxer que voleu obrir. Si intenteu llegir un fitxer que no existeix (Accés = Lectura), apareix un missatge d'error. Si intenteu escriure en un fitxer que no existeix (Accés = Escriptura), es crea un fitxer nou.

Mode: Paraula clau que especifica el mode del fitxer. Valors vàlids: Afegeix (afegeix a un fitxer seqüencial), Binari (els bytes poden accedir a les dades amb Get i Put), Entrada (obre el canal de dades per a la lectura), Sortida (obre el canal de dades per a l'escriptura) i Aleatori (edita els fitxers relatius).

IOMode: Paraula clau que defineix el tipus d'accés. Valors vàlids: Lectura (només de lectura), Escriptura (només d'escriptura), Lectura Escriptura (ambdós).

Protegit: Paraula clau que defineix l'estat de seguretat d'un fitxer després d'obrir-lo. Valors vàlids: Compartit (el fitxer es pot obrir amb altres aplicacions) Bloqueig de lectura (el fitxer està protegit contra la lectura), Bloqueig d'escriptura (el fitxer està protegit contra l'escriptura), Bloqueig de lectura i d'escriptura (denega l'accés al fitxer).

FileNumber: Qualsevol expressió d'enter de 0 a 511 per indicar el nombre d'un canal de dades lliure. Podeu passar ordres a través del canal de dades per accedir al fitxer. El nombre del fitxer ha d'estar determinat per la funció FreeFile immediatament abans de l'expressió Open.

DatasetLength: Per a fitxers d'accés aleatori, defineix la longitud dels registres.

Podeu modificar el contingut d'un fitxer que es va obrir amb l'expressió Open. Si intenteu obrir un fitxer que ja està obert, apareix un missatge d'error.

## Exemple:

    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, "Això és una línia de text"

        Print #iNumber, "Això és una altra línia de text"

        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