Le premier site francophone dédié au développement Pocket PC


Utiliser les 'FileSystem Controls' (partie 2)
 
   

 

Partie 1
Partie 2
Partie 3

Dans cette 2ème partie, nous allons apprendre à travailler avec des fichiers organisés en lignes de textes.

Un fichier texte, kézako ?

Généralement, on utilise le mot 'texte' par opposition à 'binaire'. Un fichier texte, est composé de lignes de texte (et oui) se terminant par un retour à la ligne (CRLF). Ces fichiers sont séquenciels, car si vous voulez lire à 15ème ligne du fichier, il vous faut lire les 14 précédentes avant d'arriver à la 15ème. Ces fichiers sont très simple à mettre en oeuvre, mais leur utilisation est un peu lourde.

Utilisation de l'objet 'File' fourni par les 'FileSystem Controls'

Pour créer, lire et écrire des fichiers, nous devons utiliser l'objet 'File' fourni par notre fameux 'FileSystem Controls'. La première chose à faire et d'instancier un objet de ce type :

Dim wFile As File
Set wFile = CreateObject("FileCtl.File")

La création d'un nouveau fichier texte

Pour créer un nouveau fichier texte, il faut effectuer 3 étapes qui sont :

1 Ouverture du fichier en mode création
2 Ecriture de la ou des lignes
3 Fermeture du fichier

Nous allons voir en détail chaque étape :

Création

Pour créer un nouveau fichier, il faut utiliser la méthode 'Open' avec les paramètres permettant la création d'un nouveau fichier en mode texte dans lequel il est possible d'écrire. Nous allons créer le fichier "\My Documents\Essai.txt"

Call wFile.Open("\My Documents\Essai.txt", _
fsModeOutput, fsAccessWrite, fsLockReadWrite)

Le premier paramètre est le nom du fichier à ouvrir. Le second paramètre indique dans quel mode, fsModeOutput indique qu'il faut ouvrir un fichier texte, le 3ème paramètre indique que nous allons écrire dans ce fichier. Le 4ème paramètre détermine ce que les autres programmes ont le droit de faire pendant que nous travaillons sur le fichier, fsLockReadWrite indique que les autres programmes ne peuvent ni lire ni écrire dans ce fichier, autrement dit, il ne peuvent rien faire.

Si il est impossible de créer le fichier (quelle qu'en soit la raison) une erreur gérable (avec On Error) est générée.

Ecriture

Pour écrire une ligne dans le fichier texte, il faut utiliser la méthode 'LinePrint' qui prend comme argument le texte à écrire. Dans notre exemple, nous allons écrire 5 lignes :

Dim i As Integer
For i=1 To 5
 Call wFile.LinePrint("Ligne " & i)
Next 
 
Fermeture

Une fois que nous avons terminé avec le fichier, il faut le fermer, ce qui oblige le système à terminer d'écrire dans le fichier et le libère aux yeux des autres. Pour fermer un fichier, il faut utiliser la méthode 'Close' :

Call wFile.Close

 

 

Ajout de lignes dans un fichier texte déjà existant

Il est tout à fait possible d'enrichir un fichier texte déjà existant (un fichier log par exemple). Pour celà, vous devez lors de l'ouverture stipuler que vous souhaitez l'ouvrir en mode ajout (append) :

Call wFile.Open("\My Documents\Essai.txt", _
fsModeAppend, fsAccessWrite, fsLockReadWrite)

Si le fichier n'existe pas encore, il est créé, sinon, il est ouvert et le pointeur de fichier est placé à la fin pour y ajouter des lignes.

La lecture d'un fichier texte

Pour lire le contenu d'un fichier texte, il faut effectuer 3 étapes qui sont :

1 Ouverture du fichier en mode lecture
2 Lecture de la ou des lignes
3 Fermeture du fichier

Nous allons partir du principe que nous ne savons pas ce que contient le fichier texte et que nous devons lire la totalité des lignes, sans savoir à l'avance combien il y en a.

Nous allons voir en détail chaque étape :

Ouverture

Pour ouvrir un fichier en lecture, il faut utiliser la méthode 'Open' (comme pour la création) avec le paramètre de mode à 'fsModeInput' qui indique un mode de lecture texte. Le paramètre de type d'accès doit être 'fsAccessRead', et nous allons toujours interdire tout accès de la part des autres programmes :

Call wFile.Open("\My Documents\Essai.txt", _
fsModeInput, fsAccessRead, fsLockReadWrite)

Si le fichier n'existe pas, une erreur gérable (avec On Error) est générée par eVB.

 

Lecture

La lecture de toutes les lignes d'un fichier texte sans en connaitre le nombre à l'avance met en scène une propriété qui retourne True si nous avons lu la dernière ligne et que nous nous trouvons donc à la fin du fichier. Cette propriété est 'EOF'.

La lecture d'une ligne proprement dite est effectuée par la méthode 'LineInputString' qui retourne la ligne en cours de lecture.

Dans l'exemple suivant, nous allons afficher toutes les lignes lues dans le fichier :

Dim wLigne As String
Do While Not wFile.EOF
 wLigne = wFile.LineInputString
 MsgBox wLigne
Loop
 
Fermeture

Comme toujours, une fois le travail terminé, on ferme le fichier :

Call wFile.Close

 

 

Conclusion de cette 2ème partie

Il existe deux autres sortes de fichier texte, et nous allons apprendre à l'utiliser dans la prochaine partie.

Stéphane Sibué

 

 
       
   
 
   
Copyright 2001-2004 - Tous droits réservés
 
   

iPAQ est un produit de COMPAQ.
Visual Tools est un produit de Microsoft Corporation.
Toutes les autres marques et produits présents dans ces pages sont la propriété exclusive de leurs sociétés respectives.