Questions sur les fichiers de configuration
#1
Bon, j'ai une grande question qui me vient sur un tcl que je veux faire.

Je veux pouvoir prévoir plusieurs configurations et j'ai différentes options possibles (sachant qu'on doit pouvoir changer de conf "à la volée"):
  • une série de fichiers tcl
  • un fichier tcl avec de tableaux
  • un fichier .ini (parsé avec tcl::inifile)
  • un .xml

Je partirais bien sur le .ini mais il impose un package. Le .xml n'est pas traitable directement, les fichiers tcl ne sont pas très explicites pour le commun des utilisateurs.

Votre avis ?
Répondre
#2
Bonjour,

Générer le tout par web ? Sa permet faire un meilleurs traitement par fichier ou de pouvoir modifié certaines choses niveau configuration à la volée comme tu dis.

Si par exemple ont désire changer que une chose et que ton projet à certaines choses ou sa implique que ont peut pas traiter directement par rapport au .ini le meilleurs pour moi serait par web donc MySQL..
Répondre Avertir
#3
Heu, on parle ici de scripts TCL pour les eggdrops, sans rapport avec un quelconque web.
Donc, je parle de fichiers de configuration pour des scripts eggdrops, qui fonctionnent juste avec un eggdrop et rien d'autre.
Répondre
#4
salut,

si c'est pour un eggdrop, pourquoi tu veux changer la façon de faire classique?
un simple fichier tcl (ou .conf avec des set dedans) que tu source dans le fichier principale.

sinon autre idée, faire un fichier conf plus générique du genre
Code :
machin=1
#commentaire sur la conf
bidule=0
etc...
avec une proc de moins de 10lignes pour le charger, dans laquelle tu récupères les lignes sans # et tu split sur le =
ensuite un simple "set [lindex $var 0] [lindex $var 1]"
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#5
C'est justement la question que je pose.
Faire un fichier de configuration tcl (donc, il faut que l'utilisateur connaisse un peu), un .ini (c'est plus simple mais il faut le bon package) ou un .xml (c'est plus passe-partout mais il faut des procédures de lecture/ecriture qui ne sont pas natives ou packagées).
Et donc, votre avis sur ces solutions, d'un point de vue utilisateur.

Question technique, je pense pouvoir m'en sortir, je commence à comprendre le tcl...
Répondre
#6
perso, je suis pour une config classique en tcl, c'est quand même comme ça qu est faite la config d'eggdrop, donc celui qui est capable d'utiliser un eggdrop est capable de configurer un tcl
C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#7
après pour Tcl-Bot j ai opté pour une solution tcl simplifié, comme j utilises des array, pour simplifier la conf j ai créé une proc setVar, par exemple:
TCL
setVar nick Tcl-Bot
#et la proc setVar ressemble à ça
proc setVar {name value} {
    variable tb
    array set tb [list $name $value]
}


C'est en reconnaissant ses erreurs que l'on progresse Wink
Répondre Avertir
#8
Ce n'est pas ma question !
Répondre
#9
djkenny a écrit :perso, je suis pour une config classique en tcl, c'est quand même comme ça qu est faite la config d'eggdrop, donc celui qui est capable d'utiliser un eggdrop est capable de configurer un tcl

Je prends cet argument en compte, il est bon.
Répondre
#10
Finalement, j'ai résolu mon problème: j'utilise du tcl et du ini.

Le principe est d'avoir un jeu avec des options définies au départ (canaux, langue, ...) et tout ça se fait dans le tcl, dans un bloc de configuration.
Le jeu lui-même peut être appelé avec une initialisation variable, c'est donc dans un .ini qui contient une section par initialisation.

Ca permet d'utiliser la "puissance" de la manipulation des .ini avec le bon package (http://tcllib.sourceforge.net/doc/ini.html) et de séparer ce qui est configuration basique et configuration utilisée à la volée.
Répondre
#11
J'utilise un principe similaire (sans l'être tout à fait) pour le jeu Motus, qui possède une config de base définissant les paramètres par défaut, et des configs allégées, applicables à la volée.

Plusieurs configurations de base peuvent coexister et ne peuvent être appliquées que par un administrateur, les configs allégées (ne contenant que des paramètres de jeu influant sur la difficulté, les points gagnés ou perdus, ...) peuvent elles être appliquées par les joueurs après un vote à la majorité absolue.

Tout paramètre qui n'est pas défini dans la config allégée est hérité de la config de base.

J'interviens un peu après la bataille, mais je n'avais pas lu ce post avant ^^
Répondre Avertir
#12
Il n'y a pas de mal, tu n'es pas obligé de lire tous les posts Smile

Je regrette qu'actuellement il n'y ait pas un vrai package xml qui permettrait de lire et écrire proprement des xmls sans faire une usine à gaz dans un script, et j'aime bien les fonctionnalités du package inifile.
Le tcl que je fais actuellement me permettra de voir si c'est aussi efficace et pratique que je l'espère, mais ça a déjà un énorme avantage: X configurations, un seul fichier et un code réduit.
Répondre


Atteindre :


Utilisateur(s) parcourant ce sujet : 1 visiteur(s)
Tchat 100% gratuit -Discutez en toute liberté