Pourquoi tu utilises phenomFilter? Je vois pas l'intéret de cette procédure...
Ensuite, ta procédure accesssalon et complètement fausse: A chaque tour de boucle, tu fermes ton fichier, donc en fait tu ne lis que la 1ère ligne du fichier.
D'ou l'intérêt d'avoir une indentation claire. Corriges-moi ça, et ça ira ;-)
je penser utiliser phenomFilter en croyant que sa aller prendre en compte les pseudo avec les caractère [ ] _- ' ect .. en ce qui concerne le souci de boucle je vois pas comment faire,j'ai bcp de mal à comprendre la lecture,écriture et la détection dans un fichier
30/10/2009, 23:22 (Modification du message : 30/10/2009, 23:23 par Merwin.)
Je t'ai donné toutes les clés pour résoudre ton problème.
Code :
- Ouvrir le fichier (open)
- Tant que on est pas à la fin du fichier: (eof, Enf Of File)
- Lire une ligne (gets)
- Si la ligne = le pseudo (string equal) => Fermer fichier, return 1
- Fin de la boucle, on a atteint la fin du fichier
- Fermer fichier, return 0
Merwin a écrit :- Ouvrir le fichier (open)
- Tant que on est pas à la fin du fichier: (eof, Enf Of File)
- Lire une ligne (gets)
- Si la ligne = le pseudo (string equal) => Fermer fichier, return 1
- Fin de la boucle, on a atteint la fin du fichier
- Fermer fichier, return 0
Depuis le début de cette discussion, je me pose une question: Pourquoi ne pas lire le fichier une fois pour toute, lors de l'initialisation du tcl ou de la modification du fichier, et conserver la liste en mémoire. Et ensuite, juste chercher dans la liste ?
31/10/2009, 13:30 (Modification du message : 31/10/2009, 13:32 par Merwin.)
@CrazyCat:
Ca marche aussi avec [read] oui, mais vu qu'il était partit sur la méthode open j'ai continué sur sa voie! Personellement j'aurai utilisé read ;-)
ATTENTION: read c'est pratique, mais ne pas l'utiliser sur de gros fichiers, puisque tout le contenu est chargé en mémoire, ce qui n'est pas le cas avec open ;-)
@Fedora:
Oui, sauf que la, ton fichier n'est pas fermé, réfléchis: Tu fais 'return', du coup tu sors de ta fonction! Donc le close n'est jamais appellé, et ton fichier n'est pas fermé! Penses bien à appeller close avant chaque return.
ASTUCE: Il y a une option -nocase, à la fonction [string equal], qui te permet directement de faire une comparaison sans tenir comtpe des Maj/Min: [string equal -nocase "Merwin" "MeRWin"] => Renvoi 1 !
je rencontre toujours les même souci un coup il prend le pseudo un coup non un autre il fait plus rien . -_-"""
donc j'pense que faire un système comme sa sera mieux par flag ! parceque là sa m'gonfle un peut (rire)
merci de votre aide apporter
ne sachant vraiment pas coder et n'ayant pas bcp de temps pour ça ( à cause de mes enfants ) je voulais savoir si ce TCL était 'il toujours d' actualité ,car ce système me plais.le système par flag du genre X G ect .. j'ai pas trop confiance mais mettre les pseudos dans un fichier cela me rassure un peut plus.fedora à tu fini ce TCL ? peut tu le mettre en DLL sur le site ?
Ya t'il quelqu'un qui à ce genre de TCL svp?
merci beaucoup pour votre gentillesse et votre sympathie pour les partage de vos code .
désoler mais par manque de temps je n'est pas terminer ce tcl mais je t'encourage à le finir si il te convient en suivant les tutos sur les précédent poste :)
Âpres un cours moment de répit hier soir, j'ai reprit le TCL et j'ai tout de même fini par le terminer et y ajouter un système qui permet de mettre les salons qu'ont souhaite activer en mode restreint,seul les users qui seront dans la database "UserVip.db" pourront rentrer sur le salon.
donc comme je l'ai dit une commande permet d'activer ou non le salon en mode "restreint" ".protect on" pour activer ".protect off" pour désactiver.
julien23 je te l'ai fait parvenir par email .
ps: il prend aussi les users qui ont leur extensions pseudo|blabla
17/02/2010, 15:20 (Modification du message : 17/02/2010, 15:20 par fedora.)
bonjour,
voila je revient car je trouve vraiment pas la solution pour qui prenne le pseudo exact avec sont extension (pseudo|occuper) ou bien les pseudo avec des caractère [] ect .. en relisant les aides apportées j'y arrive vraiment pas.impossible de trouver les bonnes procédures pour détecter le ou les pseudos que ce soit ds un .txt ou .db . si quelqu'un aurais un modèle svp ou aurais la solution ça serais vraiment sympa parce que là je plante totalement .
tcl
# //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//# Commencement du Script TCL # //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//
# //-//-//-//-//-//-//- Début De la Configuration -//-//-//-//-//-//-//
# Indiquer le salon ou sera reporter les logs salon et Autorisationset phenom(salon)"#Arena"
# Indiquer ici le message de kick de la personne qui ne sera pas autoriser à entrer sur votre salonset phenom(kickmsg)"Access Non Autoriser pour ce salon ! "
# Céation des fichiers Manquantset fichier(pseudo)"autorise_salon.db"
# //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//# !!! NE CHANGEZ RIEN A PARTIR DE CETTE LIGNE !!!# //-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//-//
# Le Systeme de Procédure lors du Joins de la personne
bind join - "$::phenom(salon) *" phenomAutorisation
proc phenomAutorisation {nick uhost hand chan}{global botnick phenom
if{$nick == $::botnick}{return0}if{[acceesalon $nick]==0}{
putserv "PRIVMSG $::phenom(salon) :\00314Autorisation \0034° \00314Refusé\00314 \0034°\0034"
putserv "KICK $chan $nick : $::phenom(kickmsg)"return1}
putserv "PRIVMSG $::phenom(salon) :\00314Autorisation \00303°\00314Accepté\00303° \00314pour le salon $::phenom(salon)"
pushmode $chan +v $nickreturn0}# Ne pas toucher Systeme Proc !!proc acceesalon {nick}{set access 0set fa [open"autorise_salon.db" r]while{![eof$fa]}{set get [gets$fa]if{[string equal [string tolower $get][string tolower $nick]]==0}{set access 1}close$fareturn$access}}