Contenu

# Instruction Optn

Ouvre un canal de données.

### Syntaxe :

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

### Paramètres :

pathname : nom et chemin du fichier à ouvrir. Si vous essayez de lire un fichier qui n'existe pas (Access = Read), un message d'erreur s'affiche. Si vous essayez d'écrire dans un fichier qui n'existe pas (Access = Write), un nouveau fichier est créé.

mode : mot-clé spécifiant le mode de fichier. Valeurs correctes : Append (ajout dans un fichier séquentiel), Binary (accès aux données par blocs d'octets au moyen de Get et Put), Input (ouverture d'un canal de données pour lecture), Output (ouverture d'un canal de données pour écriture) et Random (édition de fichiers relatifs).

io : mot-clé définissant le type d'accès. Les valeurs correctes sont : Read (lecture seule), Write (écriture seule), Read Write) (lecture écriture).

locking : mot-clé définissant l'état de sécurisation d'un fichier après son ouverture. Les valeurs correctes sont : Shared (fichier pouvant être ouvert par d'autres applications), Lock Read (fichier protégé contre la lecture), Lock Write (fichier protégé contre l'écriture), Lock Read Write (aucun accès au fichier).

filenum : toute expression au format nombre entier comprise entre 0 et 511 indiquant le numéro d'un canal de données libre. Vous pouvez ensuite accéder au fichier en transmettant les commandes par ce canal. Le numéro de fichier doit être déterminé par la fonction FreeFile juste avant l'instruction Open.

reclen : pour l'accès Random aux fichiers, définissez la longueur des enregistrements.

Vous ne pouvez modifier le contenu d'un fichier que si celui-ci a été ouvert avec l'instruction Open. Si vous tentez d'ouvrir un fichier déjà ouvert, un message d'erreur s'affiche.

### Exemple :

      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, "Ceci est une ligne de texte."
          Print #iNumber, "Ceci est une autre ligne de texte."
          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, "Ceci est une ligne de texte."
          Print #iNumber, "Ceci est une autre ligne de texte."
          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

Si l'instruction Open essaie d'ouvrir un fichier sur lequel l'utilisateur actuel n'a pas d'autorisations de lecture/écriture, une erreur d'E/S sera générée.

Rubriques connexes

Instruction Close

Fonction FreeFile

Instruction Input#

Instruction Print#