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
[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE?[WF4] PASSAGE D'ARGUMENTS LITERAL, VISUALBASICVALUE OU LAMBDAVALUE? par JeremyJeanson
Avec la sortie de la RC de Visual Studio 2010, Microsoft a mis un peu les points sur leS i en ce qui concernait le passage d'arguments. Mais nous somme un certain nombre à avoir pris ce changement comme un coup dur. Pour résumer la situation : à la sortie...
Cliquez pour lire la suite de l'article par JeremyJeanson [RIA SERVICES] INCLUDE ET DOMAINDATASOURCE[RIA SERVICES] INCLUDE ET DOMAINDATASOURCE par Audrey
Dans un de mes articles précédents , j'avais parlé des DomainDataSource avec RIA Services dans le cas d'une interface Maître - Détail. Dans le même principe, je vais parler d'une autre manière de mettre en forme ce cas d'interface avec RIA Services. Et po...
Cliquez pour lire la suite de l'article par Audrey ZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATIONZUNE : VERSION ZUNE SOFTWARE V 4.2 ET LA SOCIALISATION par ROMELARD Fabrice
Une des nouveautés de la version V 3.0 était l'apparition de l'onglet Social qui ne fonctionnait que si le MarketPlace était activé sur son poste. Cela limitait donc son intérêt, car hors du cadre commercial USA-CANADA, peu de monde trouva...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice PRATIQUE DE SILVERLIGHT PAR ERIC AMBROSIPRATIQUE DE SILVERLIGHT PAR ERIC AMBROSI par MPOWARE
Je viens de finir la lecture du dernier livre d'
Eric Ambrosi
éditions PEARSON
Son livre donne une approche pratique de Silverlight qui sera aussi bien comprise par le développeur que par le designeur.
Tous les aspects du développement RIA sont abor...
Cliquez pour lire la suite de l'article par MPOWARE APPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NETAPPRENDRE à DéVELOPPER POUR LES MOBILES AVEC LA NOUVELLE GéNéRATION .NET par odewit
2 déclinaisons de Silverlight et 2 déclinaisons de Mono permettent dorénavant (ou permettront prochainement) de développer des applications .NET mobiles pour les principales plates-formes du marché :
Silverlight pour Symbian, basé sur Silverlight 2...
Cliquez pour lire la suite de l'article par odewit
Logiciels
Academy System (10.9.4.0)ACADEMY SYSTEM (10.9.4.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Xilisoft Convertisseur Vidéo Ultimate (5.1.39.0305)XILISOFT CONVERTISSEUR VIDéO ULTIMATE (5.1.39.0305)Xilisoft Convertisseur Vidéo Ultimate est un outil puissant de conversion vidéo, facile à utilise... Cliquez pour télécharger Xilisoft Convertisseur Vidéo Ultimate Xilisoft DVD Ripper Ultimate (5.0.64.0304)XILISOFT DVD RIPPER ULTIMATE (5.0.64.0304)Xilisoft DVD Ripper Ultimate est un logiciel excellent pour copier et convertir DVD vers presque ... Cliquez pour télécharger Xilisoft DVD Ripper Ultimate Rigs of Rods (63.3)RIGS OF RODS (63.3)c'est un jeu de multi-simulation camions,autobus voitures, avions, bateaux, hélicoptère avec défo... Cliquez pour télécharger Rigs of Rods
|