Mise en forme de code: pensez à utiliser les balises [ tcl ] et [ /tcl ] (sans les espaces bien sûr) autour de vos codes tcl afin d'avoir un meilleur rendu et une coloration syntaxique. x


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 ?
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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..
#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.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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 ;)
Away
#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...
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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 ;)
Away
#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 ;)
Away
#8
Ce n'est pas ma question !
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#9
djkenny Wrote: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.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#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 ^^
Toute l'actualité de mes scripts ici     (dernière mise à jour le 22/04/2020)

Tout programme comporte au moins un bug et pourrait être raccourci d'au moins une instruction, de quoi l'on peut déduire que tout programme peut être réduit à une seule instruction qui ne fonctionne pas.
#12
Il n'y a pas de mal, tu n'es pas obligé de lire tous les posts :)

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.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away


Possibly Related Threads…
Thread Author Replies Views Last Post
  Modifier le script du trivia pour défiler les questions dans l'ordre Mimisth 2 3,484 05/12/2015, 19:45
Last Post: MisterS
  [Tuto] Les fichiers comme DB CrazyCat 45 22,775 04/07/2011, 21:15
Last Post: djkenny
  Pleins de questions que je me pose pchevee 12 6,959 11/04/2011, 20:47
Last Post: pchevee
  explication sur les fichiers .db lesny 2 4,668 27/02/2011, 19:11
Last Post: CrazyCat
  Trivia des questions kipof 10 6,150 28/11/2009, 00:44
Last Post: kipof
  Besoin d'aide pour manipuler les fichiers ini, txt et db 0 221 Less than 1 minute ago
Last Post:

Forum Jump:


Users browsing this thread: 1 Guest(s)