Cours 9 : Accès aux fichiers



Il existe trois mode d'accès aux fichiers dans Visual Basic 6 :
  1. Les fichiers à accès séquentiel ne peuvent ouvrir que des fichiers avec un contenu textuel.
  2. Les fichiers à accès direct sont formés en général de plusieurs enregistrements de longueur fixe.
  3. Les fichiers binaires sont tous les fichiers avec un contenu graphique.




1. Les fichiers à accès séquentiel


Il existe trois manières d'ouvrir un fichier texte :
  1. La 1ère manière est l'ouverture d'un fichier uniquement en lecture à l'aide de l'instruction Input.
  2. La 2ème manière est l'ouverture d'un fichier uniquement en écriture à l'aide de l'instruction Output.
  3. La dernière manière est l'ouverture d'un ficher en écriture aussi mais à la seule différence de la précédente manière, les nouvelles données sont entrées à la suite de l'enregistrement précédent. Pour cela, on utilise l'instruction Append.

Pour comprendre son fonctionnement, prenons un exemple. Lancez Visual Basic et ouvrez un nouveau projet. A la propriété Caption de la feuille Form1, affectez-lui la valeur "Bloc-note". Sur la feuille Form1, tracez un rectangle assez grand en utilisant le contrôle TextBox. Allez dans la boîte de propriété du contrôle TextBox et allez à sa propriété Text. Effacez-y le contenu. Ensuite, à sa propriété Multiline, choisissez True.
Maintenant, placez sur la feuille 4 contrôles CommandButton. Pour chacun des 4 contrôles, donnez leur, les valeurs "&Ouvrir", "&Effacer", "&Sauvegarder" et "&Quitter" à la propriété Caption et les valeurs "Ouvrir","Effacer", "Sauvegarder" et "Quitter" à la propriété Name.
Voici l'allure que la feuille form1 doit avoir à présent :

Feuille

Pour que ce bloc-note soit opérationnel, il faut définir des procédures qui gèrent les actions de chaque contrôle présent dans la feuille.
Double-cliquez sur le bouton de commande "Ouvrir" et écrivez la portion de code suivant :

Private Sub ouvrir_Click()
On Error Resume Next
Open "C:\Windows\Bureau\note.TXT" For Input As #1
retour = Chr$(13) + Chr$(10)
Line Input #1, texte
tout = texte
If Len(tout) <> 0 Then
While Not EOF(1)
Line Input #1, texte
tout = tout + retour + texte
Wend
End If
Close #1
End Sub

Explication :
  • L'instruction On error Resume Next permet d'ignorer toute erreur que peut entraîner cette procédure.
  • L'instruction Open "C:\Windows\bureau\note.TXT" For Input As #1 permet d'ouvrir le fichier "note" situé sur le bureau. Lorsque l'application est exécutée pour la première fois, une erreur 53 devrait apparaître car le fichier "note" n'existe pas encore. Mais grâce à l'instruction On Error Resume Next, cette erreur sera tout simplement ignorée.
  • L'instruction retour = Chr$(13) + Chr$(10) permet d'aller à la ligne suivante. Le code ASCII 13 correspond au "retour chariot", c'est-à-dire de revenir à gauche du texte et 10 au "passage à la ligne", c'est-à-dire d'aller à la ligne suivante. Vous pouvez aussi utiliser le code vbCrLf à la place et c'est plus court et plus facile à retenir. Vous aurez ainsi:
    "tout = tout + vbCrlf + texte"
  • L'instruction Line Input permet de placer dans la variable "texte" le contenu de la première ligne du fichier "note.TXT".
  • Ensuite, le contenu de la variable "texte" est à son tour, affecté à la variable "tout".
  • Le test avec l'instruction If permet de vérifier que le fichier "note.TXT" n'est pas vide à l'aide de la fonction Len qui compte le nombre de lettres ou tout autre symbole contenu dans la variable "tout". Si le nombre de lettres est différent de zéro alors, les instructions à l'intérieur du test sont exécutés.
  • La boucle avec While permet de parcourir tout le fichier à la recherche d'éventuelles autres lignes que la première. La fonction EOF permet de savoir si l'on arrive à la fin du fichier ouvert. Cette boucle est donc exécutée jusqu'à ce que tout le contenu du fichier soit placé dans la variable tout. Les chaînes de caractères affectées à la variable "tout" sont concaténées (concaténées = ajoutées) aux précédentes contenues dans la variable. La variable "retour" provoque un retour à la ligne à chaque fois que cela est nécessaire.
  • Lorsque tout le contenu du fichier sera affecté à la variable "tout", cette dernière sera à son tour affectée à la propriété Text du contrôle TextBox. Ce qui provoquera l'affichage du contenu du fichier dans le contrôle TextBox.
  • L'instruction Close ferme le fichier ouvert en lecture.

Écrivons maintenant la portion de code correspondant au bouton "Sauvegarder" :

Private Sub Sauvegarder_Click()
Open "C:\Windows\Bureau\note.TXT" For Output As #1
Print #1, Text1.Text
Close #1
End Sub

Explication :
  • L'instruction Open "C:\Windows\Bureau\note.TXT" For Output As #1 ouvre le fichier "note.TXT" en écriture.
  • Le contenu de la zone de texte "Text1" est ensuite copié dans le fichier à l'aide de l'instruction Print.
  • Enfin, le fichier est fermé à l'aide de l'instruction Close.

Passons à l'écriture de la procédure concernant le bouton "Effacer" :

Private Sub Effacer_Click()
Text1.Text = ""
Text1.SetFocus
End Sub
Explication :
  • L'instruction Text1.Text = "" permet d'effacer tout ce qui se trouve sur la zone de texte du contrôle TextBox.
  • L'instruction Text1.SetFocus donne le focus à la zone de texte, c'est-à-dire que cette instruction provoque l'affichage d'une barre d'insertion dans la zone de texte.

Enfin, écrivons la portion de code correspondant à l'action du bouton "Quitter" :


Private Sub Quitter_Click()
End
End Sub
Explication :
  • L'instruction End permet de quitter l'application en cours.

Voilà, c'est tout. A présent, exécutez le programme et voyez ce que ça donne. Bien sûr, ce n'est qu'un simple petit programme mais en acquérant plus de connaissances par la suite, vous pourrez l'améliorer, lui ajouter de nouvelles fonctions, action,...




2. Les fichiers à accès direct


Les fichiers à accès direct contiennent des données contenues dans plusieurs enregistrements fixes. Pour déclarer un enregistrement, on utilise l'instruction Type pour créer un nouvel type de variable. Ensuite, On déclare une variable de ce type. Pour ouvrir un fichier à accès direct, on utilise l'instruction Open en indiquant la longueur de chaque enregistrement. Ainsi, un fichier à accès direct s'ouvre de la manière suivante : Open "C:\Windows\Bureau\fichier.adr" For Random As #1 Len = Len(Adr) où adr est le nom d'une variable de type prédéfini.
La lecture d'un enregistrement s'effectue de la manière suivante: Get #1, Numéro, adr.
L'écriture dans un fichier à accès direct s'effectue de la manière suivante: Put #1, Numéro, adr.




3. Les fichiers à accès binaire


Dans la mesure où le fonctionnement des fichiers à accès binaires est très proche de celui des fichiers à accès direct, reportez-vous aux fichiers à accès direct.

 
Cours précédent Cours suivant
 
Powered by YoUnEs_M11 ©  2007
Copyright Vb-Maroc © 2007 Beni Mellal, Maroc
1. L'interface utilisateur
2. Structure des procédures
3. Variables et constantes
4. Tableaux
5. Tests et boucles
6. Description des contrôles standards
7. Boîtes de dialogue communes
8. Conception de menu
9. Accès aux fichiers
10. Presse-papier
11. Barre d'outils et barre d'état
12. Tableur et graphe
13. Applications MDI
14. Bases de données
15. Multimédia
16. Langage SQL
17. Éditeur de ressources
18. Le contrôle Winsock