Instruction Open

Ouvre un canal de données.

Syntaxe :


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

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.

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

Aidez-nous !