Contenuto

# Istruzione Open

Apre un canale di dati.

### Sintassi:

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

### Parametri:

pathname: percorso e nome del file da aprire. Se si tenta di leggere un file inesistente (Access = Read), appare un messaggio di errore. Se si tenta di scrivere in un file inesistente (Access =Write), viene creato un nuovo file.

mode: parola chiave che specifica il modo del file. Valori ammessi: Append (aggiunge a un file sequenziale), Binary (l'accesso ai dati può avvenire per byte usando Get e Put), Input (apre il canale dati in lettura), Output (apre il canale dati per la scrittura) e Random (modifica i file relativi).

io: parola chiave che definisce il tipo di accesso. Valori ammessi: Read (sola lettura), Write (sola scrittura) e Read Write (entrambe).

locking: 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) e Lock Read Write (l'accesso al file viene negato).

filenum: qualunque espressione numerica che restituisce un intero compreso tra 0 e 511, che indica il numero di un canale di dati libero. Dopodiché è possibile passare comandi attraverso il canale di dati per accedere al file. Il numero del file deve essere determinato dalla funzione FreeFile immediatamente prima dell'istruzione Open.

recLen: per file ad accesso Random (casuale), imposta la lunghezza dei record.

È possibile modificare solo il contenuto dei file aperti con l'istruzione Open. Se si cerca 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:\Users\ThisUser\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

      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, "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

Se l'istruzione Open tenta di aprire un file per il quale l'utente corrente non dispone delle autorizzazioni di lettura/scrittura, verrà generato un errore di I/O.

Argomenti correlati

Istruzione Close

Funzione FreeFile

struzione Input#

Istruzione Print#