Modulo
Contenuto
Indice 🔎︎

# Istruzione Open

Apre un canale di dati.

## Sintassi:

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

## Parametri:

FileName (NomeFile): nome e percorso del file che intendete aprire. Se tentate di leggere un file inesistente (Access = Read), appare un messaggio di errore. Se tentate di scrivere in un file inesistente (Access =Write), viene creato un nuovo file.

Mode (Modo): chiave che specifica il modo file. Valori ammessi: Append (aggiunge file in sequenza), Binary (dati accessibili attraverso byte utilizzando Get e Put), Input (apre il canale dati per la lettura), Output (apre il canale dati per la scrittura), e Random (modifica i file relativi).

IOMode: parola chiave che definisce il tipo di accesso. Valori ammessi: Read (sola lettura), Write (solo scrittura), Read Write (lettura/scrittura).

Protected (Protetto): parola chiave che definisce lo stato di sicurezza di un file dopo l'apertura. Valori ammessi: Shared (il file può essere aperto da altre applicazioni), Lock Read (il file è protetto contro la lettura), Lock Write (il file è protetto contro la scrittura), Lock Read Write (l'accesso al file viene negato).

FileNumber (NumeroFile): numero intero compreso tra 0 e 511 che indica il numero di un canale di dati libero. Potete quindi passare i comandi attraverso il canale di dati per accedere al file. Il numero del file deve essere determinato dalla funzione FreeFile direttamente prima dell'istruzione Open.

DatasetLength (LunghSetDati): per i file ad accesso casuale, impostate la lunghezza dei record di dati.

Potete modificare solo il contenuto dei file aperti con l'istruzione Open. Se cercate di aprire un file già aperto, viene generato un messaggio di errore.

## Esempio:

    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, "Questa è una riga di testo"

        Print #iNumber, "Questa è un'altra riga di testo"

        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