Contenuto
Indice 🔎︎

# 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 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: 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.

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:\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

D'oh! You found a bug (text/sbasic/shared/03020202.xhp#Input_h1 not found).

Istruzione Print#