Instruction Optn

Ouvre un canal de données.

Syntaxe :

Diagramme de l'instruction Open

Diagramme de fragment d'accès

Diagramme de fragment de verrouillage

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.

note

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 = "~/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
note

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.


Aidez-nous !