Accueil > Forum > > > > Problèmes avec les tokens
Problèmes avec les tokens
mercredi 6 juillet 2005 à 06:27:11 |
Problèmes avec les tokens

ckemoua2
|
bonjour.
Est ce que quelqu'un peut me dire où est le problème dans cet alias ?
Alias Testage {
var %a test un deux
var %b TEST UN DEUX
var %c 0
while (%c != $gettok(%a,0,32)) {
inc %c
if ($istokcs($1-,$gettok(%a,%c,32),32)) {
var %adire $reptok($1-,$gettok(%a,%c,32),$gettok(%b,%c,32),32)
}
}
say %adire
}
Lorsque je fais:
//say $reptok(test un deux,test,TesT,32)
Or là, j'ai une erreure dans le
" $reptok($1-,$gettok(%a,%c,32),$gettok(%b,%c,32),32) "
Mon problème étant que j'aimerai pouvoir remplacer d'autre mots que "test".
Merci d'avance :d
|
|
mercredi 6 juillet 2005 à 06:28:32 |
Re : Problèmes avec les tokens

ckemoua2
|
J'ai oublié une phrase dsl.
"
Lorsque je fais:
//say $reptok(test un deux,test,TesT,32)
çà fonctionne correctement et me sort ( TesT un deux )
Voilà.
|
|
mercredi 6 juillet 2005 à 10:39:57 |
Re : Problèmes avec les tokens

Nolson
|
Assigne $1- à ta variable %adire au début, ensuite remplace tous les $1- de tes identifieurs de tokens par %adire. N'oublie pas le "=" dans la syntaxe de déclaration des vars.
Mais si tu cherches à faire du remplacement, jette un oeil à $replace et $replacecs
|
|
mercredi 6 juillet 2005 à 13:08:07 |
Re : Problèmes avec les tokens

ckemoua2
|
Alias Testage {
var %adire = $1-
var %a = un deux trois
var %b = Un Deux Trois
var %c = 0
while (%c != $gettok(%adire,0,32)) {
inc %c
if ($istokcs(%adire,$gettok(%a,%c,32),32)) {
var %adiree = $reptok(%adire,$gettok(%a,%c,32),$gettok(%b,%c,32),32)
var %adire = $replace(%adire,$gettok(%a,%c,32),$gettok(%b,%c,32))
}
}
say /testage $1-
say %adire ($replace)
say %adiree ($reptok)
}
Donc voilà, j'ai essayé de tester avec un $replace comme tu m'as conseillé Nolson, a vrai dire je suis a l'aise ni avec l'un ni avec l'autre...
En fait les deux ne fonctionnent pas tout a fait comme il faudrait....
Soit ( le $reptok ) ne me sort rien si ma phrase ne contient pas de mot dans mes var de remplacement, soir le $replace ne tiens pas compte des espaces et remplace du coup testeur en TESTeur.
Cet alias "en test" sera ensuite combiner si j'y arrive a un on input pour détecter en plus les pseudos et modifier leurs mise en forme. Voilà :s
J'ai déjà posté un thème identique il y'a un bail.. mais n'ayant pas trouvé là solution ni par moi meme ni par le site j'avais un peu abandonné.
et là, je remets çà ;)
Merci a tous pour toute aide éventuelle.
CkemouA :d
|
|
mercredi 6 juillet 2005 à 16:30:18 |
Re : Problèmes avec les tokens

Huitre
|
si j ai bien compris tu veux faire un $reptok d un $gettok, je te
conseille de jeter un oeil sur $puttok qui lui remplace ce que tu veux
a l endroit ou tu veux, combiné au $findtok , tu devrais t en sortir ...
|
|
mercredi 6 juillet 2005 à 18:04:14 |
Re : Problèmes avec les tokens

Nolson
|
Il faut dire avant tout que le code n'est pas génial, mais au moins tu te donnes la peine de le faire (comparé à certain(e)s qui demandent du tout cuit), donc ça me donne envie de t'aider.
"En fait les deux ne fonctionnent pas tout a fait comme il faudrait.... Soit ( le $reptok ) ne me sort rien si ma phrase ne contient pas de mot dans mes var de remplacement"
Normal, tu essaies les deux solutions en même temps et tu as bien assigné $1- à %adire mais pas à %adiree. Ensuite tu modifies la variable %adiree à partir de %adire, et tu ne fais ton test que sur %adire donc si tu n'as aucun mot de ta liste, il ne passe pas le "if" et donc %adiree ne prend jamais de valeur.
"soir le $replace ne tiens pas compte des espaces et remplace du coup testeur en TESTeur."
Tout à fait, il faut essayer de le formater à ce qu'on recherche, car utilisé en l'état ça ne convient pas à ce que tu désires.
Maintenant que tu viens de nous en dire plus, on voit où tu veux en venir, en fait tu cherches à repérer les nicks dans les phrases que tu tapes pour leur donner un format particulier. Donc même avec la première méthode, tu aurais eu besoin de créer une liste des nicks présents sur le chan à chaque input, afin de les comparer. Imagine la lourdeur sur les gros chans. De plus si un même nick est répété deux fois dans la phrase seul le premier aurait été formaté.
Pour rester dans la méthode token, voici un exemple parmi tant d'autres de ce que tu aurais pu faire :
alias testage { ;on initialise les variables ( $0 correspond au nombre de mots dans $1- ) var %c = $0 , %adire = $1- , %d1 , %d2 ;on boucle sur le nombre de mots while (%c) { ;on assigne les mots un par un à une variable %d1 = $gettok(%adire,%c,32) ;on verifie si le mot est un nick du salon if (%d1 ison #) { ;on assigne à une nouvelle variable le nouveau format du nick ;par exemple : première lettre en majuscule et nick en gras %d2 = $chr(2) $+ $iif($left(%d1,1) isalpha,$upper($v1),$v1) $+ $right(%d1,-1) $+ $chr(2) ;on remplace le nick sans format par le nick formaté %adire = $puttok(%adire,%d2,%c,32) } dec %c } ;on envoie le message (mettre %adire pour envoyer avec formatage de nick ou $1- pour envoyer sans formatage) .msg # %adire ;on retourne en echo la nouvelle phrase formatée echo -t # ( $+ $me $+ ) %adire }
A utiliser dans l'input, et ne pas oublier de haltdef. Le formatage du nick s'effectue dans la ligne bleue. Quand le sens d'évolution de la variable de la boucle n'a pas d'importance (ce n'est pas toujours le cas), il vaut mieux décrémenter cette dernière, c'est plus lisible. Voila le principe de base, à toi de le mettre à ta sauce.
|
|
jeudi 7 juillet 2005 à 10:41:20 |
Re : Problèmes avec les tokens

ckemoua2
|
Coucou.
Petite précision, j'ai du mal m'exprimer.
Cet alias doit servir (et non, çà marche toujours pas lol) à remplacer un(des) mot(s) ( Précisé(s) au préalable dans une variable ) dans une phrase, non pas les pseudos.
Je suis donc en train de tester la solution de Huitre.
Pour ce qui est de ta solution Nolson, qui fonctionne, j'ai juste deux petite questions:
L'identifiant $v1 il équivaut a quoi ?
et ensuite.
Lorsque je teste une phrase comprenant un pseudo, çà me supprime sa première lettre( au pseudo )
Je ne sais pas si çà vient de moi ou pas :)
" Coucou CrEsuS devient . |10:29:34| (CrEsUs) Coucou rEsUs "
A par avoir enlver les commentaires pour y voir plus clair je n'ai touché a rien.
|
|
jeudi 7 juillet 2005 à 14:34:56 |
Re : Problèmes avec les tokens

Nolson
|
Tu avais dit que cet alias servirait à detecter les pseudos et changer leurs mises en forme ;-) Mais c'est pas grave, y a pas de problème. Il suffit d'adapter le code à ce que tu désires.
if (%d1 ison #) repère le pseudo afin de changer sa mise en forme ensuite. Si tu veux repérer un mot quelconque contenu dans une variable il suffit que tu la remplaces par if (%d1 isin %VariableContenantLesMots)
Je suppose que tu n'as pas la version 6.16 de mIRC. $v1 est un nouvel identifieur équivalent à $ifmatch. Tu peux donc le remplacer par $ifmatch. Donc c'est normal que tu n'aies pas la première lettre car cette identifieur n'existe pas dans ta version de mIRC.
Dans tous les cas à toi d'adapter la mise en forme du mot (variable %d2) et du retour en echo à ce que tu recherches. Bonne continuation.
|
|
jeudi 7 juillet 2005 à 15:04:48 |
Re : Problèmes avec les tokens

Nolson
|
Je viens de m'apercevoir que "le test contrôlant que le premier caractère est une lettre afin de la mettre en majuscule" est inutile. $upper retournera de toute façon le caractère tel qu'il est si ce n'est pas une lettre. Donc pas besoin de t'embêter avec le $iif.
%d2 = $chr(2) $+ $iif($left(%d1,1) isalpha,$upper($v1),$v1) $+ $right(%d1,-1) $+ $chr(2) devient : %d2 = $chr(2) $+ $upper($left(%d1,1)) $+ $right(%d1,-1) $+ $chr(2)
|
|
jeudi 7 juillet 2005 à 15:59:30 |
Re : Problèmes avec les tokens

Nolson
|
Oups, une petite ânerie, au niveau du repérage : Ne pas mettre if (%d1 isin %VariableContenantLesMots) qui captera même les portions de mots (ce n'est pas ce que tu veux) mais if ($istokcs(%VariableContenantLesMots,%d1,32)) qui verifiera uniquement les mots entiers.
|
|
Cette discussion est classée dans : test, var, problèmes, gettok, reptok
Répondre à ce message
Sujets en rapport avec ce message
Question dont la reponse me sera bien utile [ par Tidam ]
Alors Voila C juste que j'aimerais savoir comment on fait pour dire que 1 variable soit = a toutes les variables dont le nom commence par %test-Exempl
probleme de variable [ par Virtuallllll ]
depuis aujourd'hui plus aucun script qui utilise des variables ne marche ... a chaque fois ds le status il me met "%cmd Unknown command"et qd j'essaye
%test [ par xionoxid ]
Salut à tous enfaite je voudrais mettre %script = Mon script preferetitle "Configuration de %script "mais ça veut pas sur la fenetre il affiche Config
Bleh ! un test [ par Knox ]
Changement de nick rapide [ par DJOz ]
Voila je bosse sur un changement de nick rapide, le script de base a ete repeché sur votre site voila la source on 1:input:*: { if ( !oqp == $gettok(
$reptok($reptok($reptok [ par N4d1n3 ]
K. Avec ça, je peux faire deux $reptok... a 3 ça marche pu. Mais moi je veux mettre plus de smiley a remplacer, comment je fais? Exemple je veux rajou
Problème bête [ par CyberP ]
J'ai mis ce code (c'est juste un test) dans un remote mais il ne fonctionne pason *:TEXT:*:*:{ /say test}Quelle est l'erreur s'il vous plait ?CyberP,
UN PB AVEC /SCON [ par skalp ]
alias view { if ($scon(0) > 0 ) { /write -c $1- var %x = 1 :next /scon %x /write $1- etat $!status /scon %x /write $1- reseau $!netw
faire une boucle de $query [ par jujuquatre ]
~~~~~~~~~~~QuQuQuatrEuH~~~~~~~~~~~Salut, Je voudrais faire une boucle que quand quelqu'un change de pseudo sa regarde dans nos pv si il est dedans et
Interdire un mot [ par theNoX ]
Bonsoir J'aimerais savoir comment interdir un mot :le mot serai "test" et celui ci dans n'importe quel commande du genre :On *:text:!msg *:#: { /com
Livres en rapport
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Forum
RE : AIDERE : AIDE par Nico26000
Cliquez pour lire la suite par Nico26000 RE : AIDERE : AIDE par WorldDMT
Cliquez pour lire la suite par WorldDMT AIDEAIDE par Nico26000
Cliquez pour lire la suite par Nico26000
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|