Vous n'êtes pas identifié(e).

Top posteurs

Statistiques

Partenaires

  • eXolia Hosting
  • Eggdrop.fr

#1 12/01/2014 14:52:10

pyrooo
Nouveau IRCzien
Inscription : 24/03/2012
Messages : 3

Script tcl ajout/recherche

Bonjour à tous je recherche de l'aide pour mettre en oeuvre un tcl très précis mais très simple à priori pour les habitués
J'explique le principe : en privé avec le bot on ajoute un souhait (exemple !add Reunion.le15.01 moimeme)
cette commande est retranscrite dans un chan particulier (exemple : moimeme demande Reunion.le15.01 le 12/01/14)
et je souhaiterais avoir une fonction recherche (exemple dans un chan différent :   !find reunion ) résultat envoyé en pv à l'utilisateur mais il faudrait que cela filtre les résultats pour ne pas me retrouver avec tous les résultats.
Donc il y aurait automatiquement une BDD interne en txt ou autre mais pas de sql ou sqlite

On m'a aidé à faire un bout de code (mais pas accompli ) pourriez vous m'aider svp ?

Voici quand même la partie de code qui a été faite :

Code: TCL
 
set base "/home/xxx/news.txt"
 
bind msg - !add news:sent
proc news:sent {nick uhost handle chan text} {
    set fp [open $::base a]
    puts $fp "[clock format [clock seconds] -format "%d/%m/%y"] $nick $text"
    close $fp
    putserv "NOTICE $nick :\00312Votre news a été enregistrée"
    putserv "PRIVMSG #Aide :\00312Add News : \0034$nick $text"
}
 
bind msg - !find recherche
 
 proc recherche { nick uhost handle chan args } {
            catch {open $::base r} db
            while {![eof $db]} {
                    gets $db ligne
                    if {$ligne != ""} {
                            if {[regexp $ligne $args]} {
							putserv "NOTICE $nick :$ligne $args"
 
                            }
                    }
            }
    }
 
 
putlog "example 1.0 loaded"
 
 
 

bonne journée à tous

Hors ligne

#2 12/01/2014 16:03:23

Nickoos
IRCzien
Lieu : Treignes
Inscription : 10/09/2011
Messages : 163

Re : Script tcl ajout/recherche

Hello.

Code: TCL
 
set base "/home/xxx/news.txt"
 
Code: TCL
 
    set fp [open $::base a]
 

Il y a une erreur ici, tu set une variable "locale", mais tu l'appelle en "global".
Soit tu :

Code: TCL
 
set ::base "/home/xxx/news.txt"
...
set fp [open $::base a]
 

Ou

Code: TCL
 
set base "/home/xxx/news.txt"
...
global base
set fp [open $base a]
 

Mais ne mélange pas les deux.

Hors ligne

#3 13/01/2014 17:51:27

pyrooo
Nouveau IRCzien
Inscription : 24/03/2012
Messages : 3

Re : Script tcl ajout/recherche

Merci de m'avoir corriger ce petit souci mais une idée aussi pour la fonction recherche ?

Hors ligne

#4 13/01/2014 18:03:40

Nickoos
IRCzien
Lieu : Treignes
Inscription : 10/09/2011
Messages : 163

Re : Script tcl ajout/recherche

Tu la possède déjà. Non ?

Hors ligne

#5 13/01/2014 18:21:50

pyrooo
Nouveau IRCzien
Inscription : 24/03/2012
Messages : 3

Re : Script tcl ajout/recherche

La recherche actuelle renvoie tous les résultats donc il faudrait justement filtrer.

Hors ligne

#6 13/01/2014 22:35:10

RanXeroX
Nouveau IRCzien
Inscription : 06/01/2014
Messages : 6

Re : Script tcl ajout/recherche

Nickoos a écrit :

Hello.

Code: TCL
 
set base "/home/xxx/news.txt"
 
Code: TCL
 
    set fp [open $::base a]
 

Il y a une erreur ici, tu set une variable "locale", mais tu l'appelle en "global".
Soit tu :

Code: TCL
 
set ::base "/home/xxx/news.txt"
...
set fp [open $::base a]
 

Ou

Code: TCL
 
set base "/home/xxx/news.txt"
...
global base
set fp [open $base a]
 

Mais ne mélange pas les deux.

Ah bon ? Quel est le problème ? global permet d'accèder localement à une variable globale, qui est aussi accessible par $::variable. On peut mélanger les deux sans soucis.

Et la recherche actuelle, elle ressort toutes les lignes si le paramètre de recherche est vide, sinon elle semble retourner la ou les lignes qui contient exactement ce qui est passé en argument. Il faudrait peut-être un log exemple pour voir s'il y a une erreur.

Hors ligne

Pied de page des forums

456153 visites ( 222 aujourd'hui ) 4 visiteurs en ligne
Copyright © 2004 - 2013 IRCz