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