Changer plusieurs mots dans un text reçu

Résolu
MoiMdr Messages postés 64 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 19 juin 2010 - 6 août 2009 à 09:00
MoiMdr Messages postés 64 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 19 juin 2010 - 10 août 2009 à 14:26
Bonjour,

Voila j'ai ça:

on ^*:text:*:#: {
if (mot1 isin $1-) { echo -t $chan < $+ $nick $+ > $replace($1-,$v1,mot1-corrigé) | haltdef }
elseif (mot2 isin $1-) { echo -t $chan < $+ $nick $+ > $replace($1-,$v1,mot2-corrigé) | haltdef }
}

on ^*:text:*:?: {
if (mot1 isin $1-) { echo -t $nick < $+ $nick $+ > $replace($1-,$v1,mot1-corrigé) | halt }
elseif (mot2 isin $1-) { echo -t $nick < $+ $nick $+ > $replace($1-,$v1,mot2-corrigé) | halt }
}

Mon soucis est de:
1)- pour les deux commandes si je tape ou qu'on m'envoie " mot1 mot2" cela me retourne "mot1-corrigé mot2" donc cela me corrige que le premier mot détecté et non les deux mots corrigé, comment faire pour que cela corrige les deux mots?

2)- pour le on "^*:text:*:?:" cela m'affiche ma ligne echo mais aussi celle que j'envoie en normal, comment faire pour que ça n'affiche que mon echo mais envois quand même ma ligne normal sans la correction sur le server?

Merci de votre aide,

Cordialement,

Moimdr,

26 réponses

MoiMdr Messages postés 64 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 19 juin 2010
9 août 2009 à 22:59
Bonsoir LeGnome666 et WorldDMT,

j'explique,

en fait je cherche à remplacer les raccourcis smileys du java de tchat-fusion, genre les plus dérangeant sont genre :p, :s car pour mon affichage ils se coupent car le raccourcis est trop court, et ce malgrès la font que j'utilise ou alors faut écrire vraiment trop gros, et de plus certains cachent du texte que j'ai après car eux trop long.

Donc je ferais genre :p=pzz; :s=sazz et du même coupe :siffle:=sbz ça évitera les conflit du coup et donc je veux aussi si je fait :p:p:p que ca me retourne pzzpzzpzz, voila ;)
Donc je vais rester en variable global je pense.

on *:input:*:{
  if ($left($1,1) != !) && ($left($1,1) != .) && ($left($1,1) != /) {
    var %a $replacexcs($1-,o_o,ooo,:frime:,fzz,:soul:,sbz,:$,maz,::$,mbz), %b $replace($1-,:p,pzz)
    if $active == # || $query($active) {
      echo -t $target $+(<,$nick,>,%couleur-gras,%Souligné,,%Couleur,%Fond) %a %b
      .msg $active $+(%couleur-gras,%Souligné,,%Couleur,%Fond,$1-)  
    haltdef  }
  }
}


Là j'en suis la, je viens de rajouter une variable pour que une ne soit pas sensible a la case pour méviter de doubler genre :p,:P,:-p,:-P et d'autre doivent être sensible car o_o est diffrent de o_O, mais pour le moment ça me double dans mon echo de retour, genre:

:p fait echo :p pzz
et
:frime: fait echo fzz :frime:

Mais je viens jsute de la rajouter y a quelque instant donc vais chercher ;)

WorldDMT je l'ai déjà la bible du mIRC et m'en sert bcp, mais pas toujours évident de tout comprendre non plus, par contre là je cherchais aussi le caractère ) en ASCII, pas de bole la commande $asc()) ne passe pas non plus mdrrr, c'était pour faire ça:

var %a = $replacexcs($1-,:$chr(code de ")"),blabla),lzz)

Voila, j'espère que je suis arrivé à me faire comprendre cette fois

Pour les regex donc et bien pour le moment je n'en vois pas l'utilité pour moi, mais peut être que j'en serais obligé d'y venir pour finaliser mon truc, je ne sais pas, mais si je doit tous faire en regex autant rester comme je suis puisque mes raccourcis sont codé en régex pour l'affichage des smileys.

bonne fin de soirée a vous ou bon réveil ou retour du taff,

Cordialement,

MoiMdr,
0
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
9 août 2009 à 23:47
essaye de remplacé dans la variable %b le $1- met plutot %a et ensuite tu retire le %a dans l'echo -t


on *:input:*:{
  if ($left($1,1) != !) && ($left($1,1) != .) && ($left($1,1) != /) {
    var %a $replacexcs($1-,o_o,ooo,:frime:,fzz,:soul:,sbz,:$,maz,::$,mbz), %b $replace(%a,:p,pzz)
    if $active == # || $query($active) {
      echo -t $v1 $+(<,$nick,>,%couleur-gras,%Souligné,,%Couleur,%Fond) %b
      .msg $v1 $+(%couleur-gras,%Souligné,,%Couleur,%Fond,$1-)  
    haltdef  }
  }
}


mais attention si le chan est en mode c le message ne sera pas envoyé donc ajoute une condition au cas que ce chan n'accepte pas les couleurs
exp:

.msg $v1 $iif(c !isincs $gettok($chan(#).mode,1,32),$+(%couleur-gras,%Souligné,,%Couleur,%Fond,$1-),$1-)
0
MoiMdr Messages postés 64 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 19 juin 2010
10 août 2009 à 00:35
WorldDMT,

Merci cool ça marche , ralalala c'est des tit truc que je ne pense pas encore pour les variable, mais ça aurait du me faire tilt quand je voyais que ça me renvoyais mon mot non corrigé soit %a soit %b

Et merci pour le mode c du $chan je n'y avais pas pensé :s , faut dire que je suis encore pas tombé sur des $chan qui n'acceptaient pas les couleurs lol ;)

Sinon pour mon $replacexcs($1-,:$chr(code de ")"),blabla)

j'ai trouvé le code c'est $chr(041) normalement mais ca marche pas :s et là bah du coup bah soit je laisse soit je trouve une autre solution car normalement c'est bon puisque si je fais

$replacexcs($1-,:$chr(36),blabla) ça marche le $ est bien pris en compte car ca me renvois "blabla"
mais
$replacexcs($1-,:$chr(041),blabla) ça me prend pas le )car ca me renvois toujours :) au lieu de "blabla"

donc voila , en plus j'ai deux raccourcis qu'il faudrait que je corrige, :) et :)) qui font pas la même chose en plus et que je suis pas arrivé a coder en regex correctement pour que :):):) marche car j'ai du mettre $ pour pas qu'il y ai de conflit avec :))

:)= ( \:-?\) | :-?\)$|\:-?\) |\:-?\)$)
et
:))= ( \:-?(\)){2} | :-?(\)){2}|\:-?(\)){2} |\:-?(\)){2})

surement que tu vas trouvé que c'est mal codé comme regex mais je ne suis pas arrivé a faire mieux , par contre le :)) me va nickel si je fait :)):)):))

Mais quoi qu'il en soit ça serait intéressant de savoir comment insérer le ) dans la commande $replace

Et merci encore de ton aide, tu explique vachement bien et là je vais aller me coucher moins con

Bonne nuit si tu lis ça cette nuit ;) moi là j'y vais marre pour ce soir

MoiMdr,
0
MoiMdr Messages postés 64 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 19 juin 2010
10 août 2009 à 10:45
Petite correction ,

$replacexcs($1-,:$chr(36),blabla) ne marche pas non plus me suis emmêlé, j'avais mis $replacexcs($1-,:$chr(36)$,blabla) .......
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
WorldDMT Messages postés 871 Date d'inscription jeudi 6 juillet 2006 Statut Membre Dernière intervention 6 janvier 2012 1
10 août 2009 à 11:05
bjr
"$replacexcs($1-,:$chr(36),blabla)"
je pense que c'est pas obligé le "x" et meme pas case seensible juste "$replace" et $chr est un identifieur donc le "$" ne doit jamais etre collé a quelque chose par derriere

$replace($1-,: $+ $chr(41),sourir,: $+ $chr(40),triste)
0
MoiMdr Messages postés 64 Date d'inscription mardi 18 novembre 2008 Statut Membre Dernière intervention 19 juin 2010
10 août 2009 à 14:26
WorldDMT,

Merci,

Le "X" de replacex c'est juste "exceptée pour des remplacements qui ont déjà été fait." $replacexCS ( que j'ai mis ) sensible a la cas, $replaceS sensible a la case, vrai dans un sens je vois pas l'interêt pour moi de faire un " exepté pour des remplacements déjà fait...

pour le $+ $chr() bah pffff oui pffff je me fais trop vieux je crois et du mal à tout retenir :s
En plus j'en ai pas qu'un de $+ dans mon code et l'espace me suis déja fais avoir pourtant ,
la pour le coup me sent très con ...

Merci encore et désolé

MoiMdr
0
Rejoignez-nous