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


[Demande] Ouverture de Fichier.
#1
Bonjour,

Je me permet de faire une Demande, concernant le traitement de fichier.
Voila je désire ouvrir 3 fichiers, mais sur un "set" commum.

Je vous montre, ce que je veux faire.


tcl
proc on { nick host hand arg} {
    variable file
    variable bfile
    variable admin
    set a [open $file]
    set a [open $bfile]
    set a [open $admin]
    set users [split [read $a] "\n"]
    close $a
    set salon [lindex $arg 0]
    set pseudo [lindex $arg 1]
    foreach u $users {
... blabla


Les variables appeler "file,bfile,admin", correspondent à ceci :


tcl
variable file "Csa/Helpeur.db"
    variable bfile "Csa/Csa.db"
    variable admin "Csa/admin.db"


Ma question et : Est-il possible de faire 3 "set a [open...", ou alors comment faire si nous ne pouvons pas.

Car appeler 3 fois le même "set", lors d'une ouverture, il se pourrais que cela enchaîne une suite de problème pour "eggdrop", trop d'ouverture de fichiers d'un seul coup ?

Cordialement
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#2
Je ne comprends même pas que tu puisses te poser la question... Chaque set va écraser le précédent, ça semble tellement logique.

Et si le but est de créer une liste de tous les utilisateurs contenus dans les fichiers, il y a plus logique:

tcl
proc fillfromfile {ulist file} {
   set fi [open $file]
   lappend ulist [split [read $fi] "\n"]
   close $fi
   return $ulist
}
 
proc on { nick host hand arg} {
    set user {}
    set user [fillfromfile $user $file]
    set user [fillfromfile $user $bfile]
    set user [fillfromfile $user $admin]
    set salon [lindex $arg 0]
    set pseudo [lindex $arg 1]
    foreach u $users {

irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#3
Mais je suis con..

Oui en effet, sa écrase les set précédents pff.
Par contre ton système et très intéressant !

Mais une question tout de même : pourquoi tu "set user {}", Je ne comprend pas ce à quoi sa sert
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#4
Il sert à préparer une liste vide, c'est toujours bien d'initialiser les variables.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#5
Je comprend pas, Même sur irc l'explication et insuffisante pour je voie la logique.

Je vais faire avec différents set et plusieurs if au moins je comprendrais mon code.
Merci tout de même de tes réponses.
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll
#6
Pour essayer de faire simple:
La procédure fillfromfile attends comme paramètres ulist (la liste des utilisateurs à compléter) et file (le fichier source).
Avant de faire un appel pour la première fois à cette procédure, je crée une liste vide que je peux passer en paramètre.

Une autre solution aurait été que le premier appel soit set user [fillfromfile {} $file].
Cette solution est moins propre car elle impose que tu saches toujours si tu as déjà commencé à remplir ta liste et te bride complètement.

Est-ce que ça ne t'est jamais arrivé de mettre une valeur par défaut dans un tcl ? C'est exactement pareil là, la valeur par défaut étant une liste vide.

Très franchement, je ne vois pas ce qui peut te bloquer sur cette ligne réellement basique.
irc.zeolia.net - Offrez-moi un café
Merci de ne pas demander d'aide en MP
Away
#7
Ah la oui je comprend !

Ce qui me bloquer c'est pour vider une liste tout en initialiser les variables.
C'est ce point la que j'avais du mal à comprendre..

Mais avec ton explication, la sa va mieux je pige bien le truc.

Merci beaucoup :p
Vous interdisez les erreurs, vous empêchez ainsi la victoire.

Ma super kikoo-page loll


Possibly Related Threads…
Thread Author Replies Views Last Post
Question [Résolu] ouverture d'un fichier KeeViiNou 1 1,348 21/06/2020, 18:29
Last Post: CrazyCat

Forum Jump:


Users browsing this thread: 1 Guest(s)