Instruction Open

Ouvre un canal de données.

Syntaxe :

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

Paramètres :

Nom de fichier : 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).

IOMode : mot-clé définissant le type d'accès. Valeurs valides : Read (lecture seule), Write (écriture seule), Read Write (lecture et écriture).

Protected : mot-clé définissant l'état de sécurisation d'un fichier après son ouverture. Valeurs correctes : 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).

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

DatasetLength : permet de définir la longueur des enregistrements pour les fichiers à accès aléatoire.

Icône Remarque

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