Vous ne trouvez pas de réponse à votre problème ? Alors posez la question dans le forum. Souvenez-vous qu'il n'y a jamais de question bête, mais rester dans l'ignorance parce que l'on n'ose pas poser une question, ça c'est une erreur !

RANDOM REPLACE


Information sur la source

Catégorie :AddOns Classé sous : replace, remplacer, multi-replace, random-replace Niveau : Débutant Date de création : 29/09/2007 Date de mise à jour : 30/09/2007 20:19:23 Vu : 1 865

Note :
Aucune note

Commentaire sur cette source (15)
Ajouter un commentaire et/ou une note

Description

le replace habituel ne remplace les lettres ou mots que par 1 remplacant
cette source permet de definir plusieurs remplacant qui seront pris aléatoirement
 

Source

  • alias rreplace {
  • var %j = $0, %i = 2, %m = $1
  • while (%i <= %j) {
  • var %k = $($+($,%i),2), %h = 1
  • while (%k $iif($prop == cs,isincs,isin) %m) {
  • var %p = $calc($iif($prop == cs,$poscs(%m,%k,%h),$pos(%m,%k,%h)) - 1), %g = $gettok($($+($,$calc(%i + 1)),2),$r(1,$numtok($($+($,$calc(%i + 1)),2),46)),46)
  • if (%k $iif($prop == cs,isincs,isin) %g) %h = $calc(%h + 1)
  • if (%p == -1) break
  • %m = $replace($+($left(%m,%p),%g,$mid(%m,$calc(%p + $len(%k) +1),1000)),$+($,chr(46)),.)
  • }
  • inc %i 2
  • }
  • $iif($isbit(%j,1),return %m,echo -a $ $+ $iif($prop == cs,rreplacecs,rreplace) $+ (string,substring,newstring1[.newstring2][.newstring3],...))
  • }
  • alias rreplacecs { var %i = 1, %m = $0 | while (%i <= %m) { var %l = $addtok(%l,$ [ $+ [ %i ] ],44) | inc %i } | return $rreplace( [ %l ] ).cs }
  • ;les remplacants doivent etre séparé par un point
  • ; exemples :
  • ; //echo -a $rreplace(bababababa,a,4.@,b,ß.8)
  • ; //echo -a $rreplace(il est plaisant de voir,plaisant,folichon.charmant.agréable.amusant,de voir,d'apercevoir.de regarder$chr(46).de matter)
alias rreplace {
  var %j = $0, %i = 2, %m = $1
  while (%i <= %j) {
    var %k = $($+($,%i),2), %h = 1
    while (%k $iif($prop == cs,isincs,isin) %m) {
      var %p = $calc($iif($prop == cs,$poscs(%m,%k,%h),$pos(%m,%k,%h)) - 1), %g = $gettok($($+($,$calc(%i + 1)),2),$r(1,$numtok($($+($,$calc(%i + 1)),2),46)),46)
      if (%k $iif($prop == cs,isincs,isin) %g) %h = $calc(%h + 1)
      if (%p == -1) break
      %m = $replace($+($left(%m,%p),%g,$mid(%m,$calc(%p + $len(%k) +1),1000)),$+($,chr(46)),.)
    }
    inc %i 2
  }
  $iif($isbit(%j,1),return %m,echo -a $ $+ $iif($prop == cs,rreplacecs,rreplace) $+ (string,substring,newstring1[.newstring2][.newstring3],...))
}
alias rreplacecs { var %i = 1, %m = $0 | while (%i <= %m) { var %l = $addtok(%l,$ [ $+ [ %i ] ],44) | inc %i } | return $rreplace( [ %l ] ).cs }
;les remplacants doivent etre séparé par un point
; exemples :
; //echo -a $rreplace(bababababa,a,4.@,b,ß.8)
; //echo -a $rreplace(il est plaisant de voir,plaisant,folichon.charmant.agréable.amusant,de voir,d'apercevoir.de regarder$chr(46).de matter)

Historique

29 septembre 2007 16:46:52 :
.
29 septembre 2007 18:44:32 :
modification pour retirer la restriction d'avoir le mot dans le mot remplacant exemple : //echo -a $rreplace(il est plaisant de voir,de,des d'y,plaisant,folichon charmant agréable amusant,voir,regarder apercevoir)
29 septembre 2007 22:01:28 :
ajout de replacecs qui controle la casse
29 septembre 2007 23:13:27 :
modification pour prendre en compte un groupe de mots
29 septembre 2007 23:20:06 :
.
30 septembre 2007 18:40:23 :
modification pour prise en compte du point et ajout de la syntaxe
30 septembre 2007 18:46:24 :
.
30 septembre 2007 19:06:30 :
modification de rreplacecs
30 septembre 2007 20:19:23 :
.

Commentaires et avis

signaler à un administrateur
Commentaire de ennery le 29/09/2007 16:58:13

attention pour ce qui est des mots qui remplacent, ne faite pas avec des mots qui comprennent deja le mot a remplacer
exemple voir / apercevoir ou de / des

signaler à un administrateur
Commentaire de ennery le 29/09/2007 18:46:34

ne pas tenir compte de mon commentaire precédent suite a la mise a jour

signaler à un administrateur
Commentaire de ISoKa le 29/09/2007 22:58:11

Bonjour,

remarque à la con : et si on voulait remplacer un mot par un groupe de mot ou un bout de phrase? avec comme caractere delimiteur l'espace ce n'est pas possible.

Sinon l'idée est sympa je trouve il me semble pas avoir vu kelke chose comme ca jusk'ici. De plus le codage à l'air propre lui aussi si ce n'est ton : goto fin qui pourrai etre remplacé par un "break" je pense.

voila donc j'm bien, bonne continuation.

signaler à un administrateur
Commentaire de ennery le 29/09/2007 23:14:41

Merci Isoka pour les remarques.
Modification apportées en conséquence.

signaler à un administrateur
Commentaire de wims le 29/09/2007 23:41:49

Maintenant si on veut remplacé par un ., c'est foutu.
Dans ce genre de cas on utilise le $chr(3) pour délimité, parce que on le remplacera très très rarement, d'autre $chr du même genre peuvent etre utilisé.

signaler à un administrateur
Commentaire de ISoKa le 30/09/2007 02:12:11

Oui mais taper le $chr(3) ca peut etre lourd surtout au clavier koi. l'idéal serai peut etre que le premier parametre soit justement le caractere separateur genre $rreplace(separateur,texte,replace.....)

signaler à un administrateur
Commentaire de ennery le 30/09/2007 11:26:58

j'ai bien la solution mais est-ce qu'elle vous convient ?
avec : %m = $replace($+($left(%m,%p),%g,$mid(%m,$calc(%p + $len(%k) +1),1000)),$+($,chr(46)),.)

//echo -a $rreplace(Ga is Ga,is,est.devient.sera.$chr(46))
//echo -a $rreplace(je vais à la peche,peche,messe$chr(46).source$chr(46).maison$chr(46))

le $chr(46) doit etre collé

signaler à un administrateur
Commentaire de FearlessKire le 30/09/2007 14:32:03

Délimiter avec des $chr utilisés rarement, une très mauvaise résolution du problème...

En effet, le code ne sera pas adapté à l'utilisateur lambda, ce ne sera pas fonctionnel.

signaler à un administrateur
Commentaire de wims le 30/09/2007 14:49:28

Ben écoute si tapé control + k c'est relou, faut arrété le mIRC scripting tout de suite hein.
Fait gaffe, a des moment avec mIRC, tu va devoir faire alt + r et tout, attention, ça risquerai de vite devenir chiant.

Le fait que l'on doit utilisé un caractère pour séparé les *token a remplacé* fait que ce séparateur peut etre compris dans la chaîne :) donc on ne pourra jamais avoir un truc fonctionnel a 100%

Dcx.dll, utilise le $chr(9) dans certaine commande/identifieur et pourtant bcp de monde l'utilise.

Le mieux est d'utiliser l'identifieur $prop :
$rreplace(chaîne,mot1,$+(mot1.1,$chr(9),mot1.2),mot2,$+(mot2.1,$chr(9),mot2.2)).9

signaler à un administrateur
Commentaire de wims le 30/09/2007 14:53:08

FearlessKire, je suppose que tu n'as pas de meilleurs idées :] ?

signaler à un administrateur
Commentaire de RCA ArKanis le 30/09/2007 16:36:29

Code plutôt original et relativement bien codé, même si je suis sûr à 100% que tu aurais pu utiliser le même alias pour la version case sensitive
alias rreplacecs return $rreplace(...).cs, que tu recupères avec $prop (= cs)

ça devrait être facile à coder cet alias avec des regex, non ?

Bonne continuation :)

signaler à un administrateur
Commentaire de ennery le 30/09/2007 19:08:23

merci Arkanis pour ton aide du rreplacecs

signaler à un administrateur
Commentaire de TropNul le 01/10/2007 04:55:49

Qui a dit Regexp ?!!

;)

signaler à un administrateur
Commentaire de uaip le 01/10/2007 16:47:36

si on parle de regex, j'ai éventuellement une question, mais rien a voir avec cette source.
sinon, mouai le code est assez cours, donc plus rapide, c'est bien x) et l'idée est plutot pas mal...
m'enfin, je sais pas pourquoi mais ya quand même quelque chose qui me tracasse...

signaler à un administrateur
Commentaire de TropNul le 07/10/2007 06:01:13

ca fait long pour poster ta question uaip :p

Ajouter un commentaire

Discussions en rapport avec ce code source dans le forum

Remplacer le signe # ? [ par trotter ] Bonjour,Je cherche un moyen de remplacer le signe # par autre chose lorsqu'on envoie un message.je pensais utiliser $replace($1-, #,"), mais cela ne f $replace [ par simoi ] bsr a tousvoiçi mon probléme je cherche le moyen de remplacer ceci: set %qr $read(lire.txt)  set %r $gettok(%qr,2,92)"le %r est une phrase que je voud aide pour script irc [ par Bliss89 ] bonjours a tous .enfin j'ai fait un petit script et j'ai un probléme.j'aimerai faire avec 2 commandes une fonction.quand on part du chan efface le nom remplacer lettres ou chiffres [ par simoi ] bsr voila je cherche la formule (comment l'écrire) pour remplacer chaque lettres ou chaque chiffre d'un mot ou d'une phrase par un signeex: le vendred remplacer lettres ou chiffres [ par jeekee ] bonsoir, j'ai un autre petit souci, tout comme "simoi", je cherche a replacé des etoiles a la place de mon texte, mais en gardant la premiere et derni Remplacer les nick dans une phrase [ par PaTaTe ] Bonjour,En fait j'aimerais pourvoir remplacer (modifier serait plus juste) tous les nick d'un salon qui serait présent dans une phrase.La phrase serai un probleme avec $replace... [ par Millardo ] Voila le code :alias code { var %a = $replace($1- ,a,2,b,x,c,.,d,3,e,1,f,l,g,q,h,7,i,b,j,n,k,8,l,0,m,9,n,j,o,w,p,i,q,yr,g,s,!,t,:,u,=,v,@,w,?,x,*,y,z Problème : remplacer un mot par un autre... [ par N4d1n3 ] Bonsoirrrr!Voilà, j'ai trouvé ici sur le forum un script ki permet de remplacer un mot par un autre. C'est a dire ke si je tape par exemple Lol, ça so remplacer un lien [ par w3ntz ] Bonjour , je ne suis pas programmeur mais je cherche un moyen de replacer un lien par un mot comme on le fait pour une page web:ex : &lt;a href http:/ Remplacer des lettres [ par Rambo82 ] ^Je cherche une commande ki permet de changer les lettre des phrase ke j'écris (ex: changer le a en b, le b en c ,ect...)


Nos sponsors

Sondage...

CalendriCode

Octobre 2008
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
2728293031  

Consulter la suite du CalendriCode

Téléchargements

Logiciels à télécharger sur le même thème :



Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel BAÏSE, Merci à Vincent pour ses précieux conseils
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés
Temps d'éxécution de la page : 0,45 sec

Google Coop CodeS-SourceS Google Coop CodeS-SourceS


Certaines images présentes sur le site (notament certains avatars) sont issues des collections IconShock, donc si vous souhaitez utiliser ces icons vous devez les acheter, ne les copiez pas et ne utilisez pas dans vos sites et applications sans les avoir commandé.