[PERL] Bot Msn

Bot Msn [PERL] - Perl - Programmation

Marsh Posté le 07-11-2002 à 21:08:36    

Voila , g telecharge un bot pour msn ecrit en perl.
Il ne dispose que dassez peu de fonctions et j'essaie d'en rajouter.
Je voulais creer une command pour lui apprendre des mots , genre .learn salut salut ca va , si on dit salut ca repond salut ca va... bref le source se decompose en divers parties dt la plus interessante est le sub sessage qui gere les message que le bot recoit.
Le message est recu et stoqué dans une variable $msg.
 
il y a divers tests sur ce messages puis c la que vient ma fonction:
 
else {
 
    @reps=<REP>;
           @trig=<TRIG>;
 
           for($i=0 ; $i<=@reps ; ++$i){
            if ($msg eq $trig[$i]){
                $reply=$reps[$i];
                }
           }            
 
 }
 
mes fichiers sont declarés ainsi :
 
open(TRIG,"trigger.txt" );
open(REP,"rep.txt" );
 
theoriquement le programme regarde le fichier trigger.txt des questins et renvoie la reponse du fichier rep.txt via la variable $reply
 
le pb est que ca revoie strictement nimporte koi...
D'ou puisse venir?

Reply

Marsh Posté le 07-11-2002 à 21:08:36   

Reply

Marsh Posté le 08-11-2002 à 08:57:43    

tu veux faire un truc genre elisa?

Reply

Marsh Posté le 08-11-2002 à 09:24:17    

Mais pourquoi utiliser 2  fichiers quand 1 seul peut suffir


---------------
Tout à commencé par un rêve...
Reply

Marsh Posté le 08-11-2002 à 10:33:42    

plus sérieux,
 
on dirait que tes fichiers ne sont pas parcouru  :??:  
 
pour parcourir un fichier je fait un truc style
 

Code :
  1. @rep = '';
  2. while (<REP> ) {
  3.    push @rep,$_;
  4. }


 
mais bon c pas trop conseiller de mettre un fichier dans une variable ( ca boufe de la memoire pour presque rien )
exemple du fichier rep.txt
bonjour = je v bien
salut ca va = oui et toi ?
 

Code :
  1. while ($rep = <REP> ) {
  2.   #pour chaque ligne
  3.   ($txt,$reponse) = split(/\s*=\s*/,$rep);
  4.   if ($txt =~ m/$msg/sgi ){
  5.      $reply=$reponse;
  6.      #je quit ma boucle
  7.      # donc si c la 4 ème ligne sur 500
  8.      # je ne v pasjusqu'a la fin (optimisation de code  :D )
  9.      last; #ou next; a voir :sweat:
  10.   }
  11. }


Message édité par stef_dobermann le 08-11-2002 à 10:38:50

---------------
Tout à commencé par un rêve...
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed