Fichier de configuration
Vous rappelez vous de ces fichiers INI qui vous permettait de sauvegarder des valeurs sous la forme Clef=Valeur ?
Il en existe certainement en Tcl TK mais j'ai décidé de faire un composant qui vous permet de manipuler ce genre de fichier.
Ce composant va créer automatiquement un répertoire nommé conf dans le répertoire où se situe votre application.
Un fichier nommé project.conf va être créé dans ce nouveau répertoire.
Le fichier ainsi créé va contenir l'ensemble des clefs de votre logiciel sous cette forme :
Maclef1=Mavaleur
Maclef2=Mavaleur
Ajout du composant a votre fichier source
Il s'agit d'un seul fichier nommé setting.tk qu'il vous suffit de télécharger ici:
puis de décompresser le zip et copier le fichier setting.tk dans le répertorie de votre application.
Ensuite dans votre code il suffit d'ajouter la ligne suivante :
source setting.tk
Le composant est maintenant prêt à être utiliser, simple non?
Lancement du composant automatique
(La version du 19 décembre s'exécute automatiquement)
Tout d'abord le composant va s'autolancer en exécutant ce code automatiquement:
Conf_Load
Si aucun fichier de configuration n'est présent le composant va en créer un.
ajouter une clef au fichier conf
Pour ajouter une clef/valeur il suffit d'écrire :
Conf_Add maclef mavaleur
modifier une valeur d'une clef
Pour éditer une clef :
Conf_Edit maclef manouvellevaleur
Remarque : Si la clef n'existe pas, aucune action ne sera réalisée. Créez d'abord la clef puis éditez là après.
supprimer une clef et sa valeur
Pour supprimer une clef :
Conf_Del maclef
Remarque : Si la clef n'existe pas, aucune action ne sera effectuée.
interroger une clef pour avoir sa valeur
Pour interroger une clef il faut écrire :
Set mavaleur [Conf_Read maclef]
Remarque : Si la clef n'existe pas, rien ne sera retourné.
sauvegarde de la configuration
Et pour finir, toutes les modifications sont effectuées en mémoire mais non enregistrées dans le fichier de configuration.
Pour sauvegarder les modifications, n'oubliez pas d'écrire :
Conf_Save
conclusion
Pour le moment cette version est stable et fonctionne correctement. Il manque gestion des rubriques comme ceci par exemple:
[TOTO] Clef=Valeur
Peut être dans une prochaine version.
un exemple concret
Voici le fichier project.conf du projet IdeTk, une IDE pour tclTk:
Title="Ide TK" Startup=main.tk Version=0.0.5 Language=en Packager=0 Theme=Default ShowTip=0 LastTip=0
à l'ouverture de mon programme, j'écris :
source setting.tk
Conf_Load
Je souhaite récupérer la valeur de la clef Language, j'écris donc ceci :
Set mavaleur [Conf_Read "Language"]
$mavaleur sera égale à en
Je souhaite créer une nouvelle clef "Voiture" qui aura pour valeur Ferrari :
Conf_Add "Voiture" "Ferrari"
Enfin je souhaite modifier la valeur de la clef Version :
Conf_Edit "Version" "1.0.1"
Voici le contenu du fichier après ces commandes :
Title="Ide TK" Startup=main.tk Version=1.0.1 Language=en Packager=0 Theme=Default ShowTip=0 LastTip=0 Voiture=Ferrari
.