Atelier : Fichiers de configuration
au format standard.


1
Présentation générale
des fichiers de configuration en .INI .

En général, les programmes sauvent leur configuration dans un format standard, qui a l'avantage d'être modifiable manuellement. Ces fichiers de configuration ont l'extension .INI, et en voici un exemple :

[Derniere Banque]
Path=C:\WINDOWS\

[Dernier Fichier Midi]
FileName=FUNK.MID
Path=C:\HOME64\

[Command mplayer]
Command=mplayer /play

Dans ce fichier, la terminologie et le format sont les suivants :

Nous allons écrire toutes les fonctions en Visual Basic qui permettent de :

Nous allons travailler dans un module Visual Basic. Nous allons créer des fonctions réutilisables dans d'autres programmes, ainsi qu'une procédure main() pour tester ces fonctions.

2
Préparation : copie d'un fichier .INI
à la racine de votre répertoire de travail.
3
Chargement initial de la configuration
depuis le fichier vers une chaîne de caractères.

En fait, pour simplifier l'accès aux valeurs, on va travailler non pas directement dans le fichier, mais dans une chaîne de caractères qui contient la copie intégrale du fichier. La recherche et l'ajout de valeur se fera donc grâce aux fonctions de manipulation de chaînes de caractères.

Dans une première étape, vous devez écrire la procédure ChargeConfig, qui charge le contenu du fichier dans une variable nommée Configuration, de type chaîne de caractères. Vous devez pour cela utilisez les fonctions que l'ont connait déjà (Open, Line Input, Eof). Après chargement, lorsque vous faites :

debug.print Configuration

vous devez obtenir (dans la fenêtre d'exécution) exactement la même chose que dans le fichier d'origine :

[Derniere Banque]
Path=C:\WINDOWS\

[Dernier Fichier Midi]
FileName=FUNK.MID
Path=C:\HOME64\

[Command mplayer]
Command=mplayer /play


4
Sauvegarde de la configuration.

Vous devez maintenant écrire la procédure SauveConfig, qui sauvegarde cette configuration. La sauvegarde est extrêmement simple, elle se fait en une seule instruction... print ou write ?

Ecrivez cette procédure.

5
Lire la valeur d'un mot-clé.

On doit écrire ici la fontion suivante, qui renvoie la valeur correpondant à un mot-clé (de type String) :

Function GetValeur (Rubrique as String, MotClé as String) as String

Par exemple, on appellera cette fonction de la façon suivante (dans ce cas, val reçoit la valeur "C:\HOME64\") :

val = GetValeur ("Dernier Fichier Midi", "Path")

Pour cela, on va utiliser les fonctions de manipulation de chaînes de caractères suivantes :

L'algorithme que vous devez appliquer pour écrire la fonction GetValeur est le suivant :

N'oubliez pas de tester votre programme (dans la procédure main), en essayant de récupérer, entre autre :

6
Modifier la valeur d'un mot-clé.

On doit écrire ici la procédure suivante :

Sub SetValeur (Rubrique as String, MotClé as String, Valeur as string)

Par exemple, on appellera cette procédure de la façon suivante :

SetValeur "Dernier Fichier Midi", "Path", "C:\Fichiers Midi"

Vous pouvez vous baser sur la fonction précédente puisque, de la même façon, on doit récupérer la position du signe égal (=) et la position du retour à la ligne qui concerne ce mot-clé.

La variable Configuration devient alors :

La partie à gauche du "=" & la nouvelle valeur & La partie à partir du retour à la ligne
[Derniere Banque]
Path=C:\WINDOWS\

[Dernier Fichier Midi]
FileName=FUNK.MID
Path=
C:\HOME64\

[Command mplayer]
Command=mplayer /play

C:\Fichier Midi [Derniere Banque]
Path=C:\WINDOWS\

[Dernier Fichier Midi]
FileName=FUNK.MID
Path=C:\HOME64\

[Command mplayer]
Command=mplayer /play

Ce qui nous donnera comme résultat :

[Derniere Banque]
Path=C:\WINDOWS\

[Dernier Fichier Midi]
FileName=FUNK.MID
Path=
C:\Fichier Midi

[Command mplayer]
Command=mplayer /play

Pour construire ce nouveau contenu, vous devez utilisez les expressions suivantes :

Réalisez tout cela et testez votre programme à partir de la fonction main, en modifiant des valeurs et en affichant la nouvelle configuration (grâce à Debug.Print).

7
Tenir compte de l'absence de la rubrique
ou du mot-clé.

Vous devez maintenant améliorer la fonction précédente pour tenir compte du fait que la rubrique ou le mot-clé n'existent pas encore dans la configuration. Dans ce cas, on ne génère pas d'erreur : on doit simplement rajouter cette nouvelle rubrique et/ou ce nouveau mot-clé.

Rajoutez donc ceci :


Sébastien PASTORE.