Les chaînes de caractères (les tokens)

1. Introduction 2. Format 3. $addtok(Texte,Jeton,C) 4. $deltok(Texte,N-N2,C) 5. $findtok(Texte,Jeton,N,C) 6. $gettok(Texte,N-N2,C) ou $token(Texte,N-N2,C) (commande cachée) 7. $instok(Texte,Jeton,N,C) 8. $istok(Texte,Jeton,C) 9. $matchtok(Texte,Jeton,N,C) 10. $numtok(Texte,C) 11. $puttok(Texte,Jeton,N,C) 12. $remtok(Texte,Jeton,N,C) 13. $reptok(Texte,Jeton,Nouveau Jeton,N,C) 14. $sorttok(Texte,C,ncra) 15. $wildtok(Texte,Chaîne avec joker,N,C) 16. $didtok(Nom du dialog,ID,C) 17. /didtok 18. /tokenize 19. $0, $1, $2, $3,...,$20,$21,... 20. Liste des caractères ASCII 21. Conclusion 1. Introduction Les Tokens ou encore pour les plus francophones, les jetons, sont en fait une section d'un texte. Ils servent à retourner une ou plusieurs parties d'une chaîne de caractères. Le tout utilisant comme séparateur un caractère ASCII (American Standard Code for Information Interchange), soi-disant un $chr. Pour de plus amples informations, naviguez vers la section listant tous les caractères ASCII.Bref, ce tutorial élucidera le mystère des Tokens en profondeur. Des exemples commentés démontrant leur utilité seront également à votre disposition. Une base solide du langage mIRC s'offre à vous pour une difficulté moindre. Bonne lecture !2. Format Pour commencer vers la bonne voie, il vous faut savoir différencier un Token d'un délimiteur. Notez bien que chaque caractère possède sa propre valeur ASCII.21:12:34Ceci représente l'heure sous format HH:nn:ss. Dans cet exemple, les jetons sont les chiffres en bleu et les séparateurs sont les deux-points en rouges. Le premier Token serait donc 21, le deuxième 12 et le troisième 34. La valeur ASCII du séparateur est 58.21:12:34Par contre, si nous reprenons la même exemple, mais en utilisant un séparateur différent, le chiffre 2. Les deux jetons seraient 1:1 et :34. La valeur ASCII du séparateur est 50.Si vous avez bien saisit le format et que vous savez isoler un caractère séparateur d'un jeton, vous êtes en mesure de poursuivre vers les identifieurs.Nota Bene : Tout au long de ce tutorial, il y aura nombre d'exemples s'offrant à vous. Pour les tester, ils vous suffit d'utiliser la commande ://echo -a 3. $addtok(Texte,Jeton,C) Syntaxe :Texte : Le texte qui englobe les jetonsJeton : Les jetons qui seront ajoutés au texteC : La valeur ASCII qui séparera le Texte prédéfini du JetonUtilité :L'identifieur $addtok permet d'ajouter un Jeton à une chaîne de caractères. Il placera automatiquement le Jeton à la fin, si celui-ci n'est pas déjà présent dans le texte.Exemples :$addtok(Texte1-Texte2-Texte3,Texte4,45) retourne Texte1-Texte2-Texte3-Texte4On ajoute Texte4 à la fin de la chaîne de caractères Texte1-Texte2-Texte3 et on le sépare par un tiret, le caractère ASCII 45.$addtok(Texte1-Texte2-Texte3,Texte2,45) retourne Texte1-Texte2-Texte3On tente d'ajouter Texte2 à la fin de la série de textes, mais le résultat retourne le même qu'au départ, soit Texte1-Texte2-Texte3. Tel mentionné antérieurement, l'identifieur $addtok vérifie si le Jeton n'existe pas dans le Texte et si la condition est positive, il l'ajoute à la fin.$addtok(Texte1-Texte2;Texte3-Texte4,Texte2,45) retourne Texte1-Texte2;Texte3-Texte4-Texte2On ajoute le Jeton Texte2 au Texte Texte1-Texte2;Texte3-Texte4 en le délimitant du caractère ASCII 45. Peut-être êtes vous songeur au fait que le Jeton s'est bel et bien ajouté à la fin, même s'il existe parmi le Texte ? Ceci est tout à fait normal car le caractère séparateur est le tiret (45) et le Jeton qui existe déjà est séparé par un point-virgule (59).Nota Bene : $addtokcs(Texte,Jeton,C) possède les mêmes fonctions que l'identifieur $addtok(Texte,Jeton,C), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte et du Jeton.4. $deltok(Texte,N-N2,C) Syntaxe :Texte : Le texte qui englobe les jetonsN-N2 : N est la position du jeton dans le texte. N2 sert à spécifier un intervalle dans le texte; ce paramètre est optionnel.C : La valeur ASCII qui différenciera le Texte à effacer selon la position du JetonUtilité :L'identifieur $deltok permet d'effacer le Nème jeton du Texte et retourne la chaîne résultante.Nota Bene: Vous pouvez spécifier une valeur négative à la Nième position, ce qui retournera la Nième position à partir de la fin en décroissant.Nota Bene 2: Vous pouvez aussi spécifier tout ce qui suit la Nième position en ajoutant un tiret à la fin du N.Exemples :$deltok(Texte1-Texte2-Texte3,1,45) retourne Texte2-Texte3On efface Texte1 au Texte puisque la position déterminée est la première et le caractère ASCII spécifié est le tiret (45).$deltok(Texte1-Texte2-Texte3-Texte4,3-4,45) retourne Texte1-Texte2On efface Texte3 et Texte4 au Texte car les positions déterminées sont la troisième et la quatrième. Le caractère ASCII spécifié est le tiret (45).$deltok(Texte1-Texte2-Texte3-Texte4,2-,45) retourne Texte1On efface tout ce qui suit la deuxième position du Texte. La chaîne Texte2-Texte3-Texte4 sera donc écrasée. L'unique survivant s'avère Texte1. Là aussi, le caractère ASCII est le tiret (45).$deltok(Texte1-Texte2-Texte3-Texte4,-3,45) retourne Texte1-Texte3-Texte4On efface la troisième position du Texte à partir de la fin car la position est négative. Le jeton exclus est alors Texte2 et le restant siège toujours.5. $findtok(Texte,Jeton,N,C) Syntaxe :Texte : Le texte qui englobe les JetonsJeton : Le jeton qui sera recherché parmi le TexteN : N représente la position désirée parmi les Jetons trouvés dans le Texte. Si le chiffre 0 est spécifié, le nombre de résultats trouvés sera retourné.C : La valeur ASCII qui séparera le Texte prédéfini du JetonUtilité :Cet identifieur permet de chercher dans le Texte la position d'un Jeton, s'il est localisé. Le N sera de mise si le Jeton est localisé plus d'une fois.Exemples :$findtok(Texte1-Texte2-Texte3,Texte2,1,45) retourne 2On recherche le Jeton Texte2 parmi la chaîne Texte1-Texte2-Texte3. Celui-ci a bel et bien été trouvé à la deuxième position. Le caractère ASCII est le tiret (45).$findtok(Texte1-Texte2-Texte3,Texte3,0,45) retourne 1On recherche Texte3 parmi la chaîne Texte1-Texte2-Texte3. Le paramètre N est nul, cela retournera donc le nombre de fois que le Jeton a été répertorié. Dans ce cas, le Jeton Texte3 séparé du tiret (45) est présent qu'une seule fois dans le Texte.$findtok(Texte1;Texte2-Texte3;Texte1,Texte1,2,59) retourne 3On recherche Texte1 séparé par le point-virgule (59) dans le Texte. Étant donné que celui-ci est présent plus d'une fois, le N peut varier. Dans cet exemple, nous avons opté pour le chiffre 2, ce qui retournera l'emplacement de la deuxième position localisée qui est 3.Nota Bene : $findtokcs(Texte,Jeton,N,C) possède les mêmes fonctions que l'identifieur $findtok(Texte,Jeton,N,C), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte et du Jeton.6. $gettok(Texte,N-N2,C) ou $token(Texte,N-N2,C) (commande cachée) Syntaxe :Texte : Le texte qui englobe les JetonsN-N2 : N est la position du jeton dans le texte. N2 sert à spécifier un intervalle dans le texte; ce paramètre est optionnel.C : La valeur ASCII qui délimitera le Texte selon la position du JetonUtilité :Cet identifieur retourne une partie du Texte selon la position et la valeur du caractère ASCII. $gettok ne doit pas être sous-estimé car il est à mon avis le plus utilisé de tous.Nota Bene : Vous pouvez spécifier une valeur négative à la Nième position, ce qui retournera la Nième position à partir de la fin en décroissant.Nota Bene 2 : Vous pouvez aussi spécifier tout ce qui suit la Nième position en ajoutant un tiret à la fin du N.Exemples :$gettok(Texte1-Texte2-Texte3,2,45) retourne Texte2On désire obtenir le deuxième jeton séparé par un tiret (45). Ceci retourne Texte2 car il est bel et bien à la deuxième position du Texte.$gettok(Texte1-Texte2-Texte3-Texte4,-2,45) retourne Texte3On obtient Texte3 car la 2ième position est négative, ceci dit que nous devons commencer par la fin du Texte. Texte3 est alors correspondant. Le caractère ASCII est un tiret (45).$gettok(Texte1;Texte2-Texte3;Texte4,1,45) retourne Texte1;Texte2On obtient Texte1;Texte2 car nous recherchons le premier jeton séparé du tiret (45).Nota Bene : Le dédoublement de caractères n'est pas pris en considération dans tous les Tokens.$gettok(-Texte1--Texte2-Texte3---,1,45) retournera Texte1.Ce bout de code est identique à:$gettok(Texte1-Texte2-Texte3,1,45) retournera Texte1.7. $instok(Texte,Jeton,N,C) Syntaxe :Texte : Le texte qui englobe les JetonsJeton : Le jeton qui sera ajouté au TexteN : N représente la position où le Jeton sera ajouté au Texte. Si le chiffre 0 est spécifié, le jeton sera placé à la toute fin de la chaîne de caractères.C : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à ajouterUtilité :$instok est très semblable à son collègue $addtok, mais ajoute le Jeton même si ce dernier existe et a une position précise. Or, un Jeton est ajouté à la Nième position du Texte selon la valeur ASCII donnée.Nota Bene : Vous pouvez spécifier une valeur négative à la Nième position, ce qui retournera la Nième position à partir de la fin en décroissant.Exemples :$instok(Texte1-Texte2-Texte3,Texte4,3,45) retourne Texte1-Texte2-Texte4-Texte3.Ceci ajoute le Jeton Texte4 à la chaîne de caractères Texte1-Texte2-Texte3. Le tout à la troisième position en prenant comme délimiteur le tiret (45). Le résultat obtenu est alors Texte1-Texte2-Texte4-Texte3.$instok(Texte1-Texte2-Texte4,Texte3,-1,45) retourne Texte1-Texte2-Texte3-Texte4.Ceci ajoute le Jeton Texte3 à la première position en commençant par la fin. En effet, lorsque la Nième position est négative, on attribue cette caractéristique décroissante. Comme les autres exemples, le caractère ASCII est le tiret (45).$instok(Texte1-Texte2-Texte3,Texte4,0,45) retourne Texte1-Texte2-Texte3-Texte4.Ceci ajoute le Jeton Texte4 à la fin. En effet, lorsque la Nième position spécifiée est 0, le Jeton ira se placer à la fin du Texte, si bien sûr le caractère ASCII correspond. Ici nous avons opté pour le tiret (45).$instok(Texte1;Texte2-Texte3;Texte4,Texte5,3,59) retourne Texte1;Texte2-Texte3;Texte5;Texte4.On ajoute le Jeton Texte5 à la chaîne Texte1;Texte2-Texte3;Texte4 à la troisième position délimité par le point-virgule (59). Le résultat est ainsi Texte1;Texte2-Texte3;Texte5;Texte4.8. $istok(Texte,Jeton,C) Syntaxe :Texte : Le texte qui englobe les JetonsJeton : Le jeton qui sera recherché au TexteC : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à rechercherUtilité :Ceci sert à rechercher un Jeton parmi le Texte sélectionné en le délimitant par un caractère ASCII. Si le Jeton est présent dans le Texte, mIRC retournera $true, autrement $false.Exemples :$istok(Texte1-Texte2-Texte3,Texte2,45) retourne $trueOn cherche ici le Jeton Texte2 parmi la chaîne de caractères suivante Texte1-Texte2-Texte3. On vérifie aussi s'il a comme séparateur le tiret (45). Le résultat est positif, donc on obtient $true.$istok(Texte4;Texte4;Texte4,Texte4,45) retourne $falseOn vérifie si Texte4 est présent parmi la chaîne Texte4;Texte4;Texte4 et qu'il est séparé par le tiret. Texte4 est effectivement parmi le Texte, mais séparé par un point-virgule. Le résultat est négatif, donc mIRC retourne $falseNota Bene : $istokcs(Texte,Jeton,C) possède les mêmes fonctions que l'identifieur $istok(Texte,Jeton,C), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte et du Jeton.9. $matchtok(Texte,Jeton,N,C) Syntaxe :Texte : Le texte qui englobe les JetonsJeton : Le jeton qui sera recherché parmi le TexteN : N représente la position désirée parmi les Jetons trouvés dans le Texte. Si le chiffre 0 est spécifié, le nombre de résultats trouvés sera retourné.C : La valeur ASCII qui séparera le Texte prédéfini du JetonUtilité :Cet identifieur permet de chercher dans le Texte un Jeton et retournera le mot ou le bout de phrase correspondant, s'il est localisé. Le tout selon le caractère ASCII spécifié et la position déterminée.Exemples :$matchtok(Texte1-Texte2-Texte3,e,0,45) retourne 3On recherche le nombre de fois où le Jeton e est repéré parmi le Texte. En effet, la position 0 retourne le nombre de résultats repérés. Il est donc présent 3 fois si on utilise comme caractère ASCII le tiret (45).$matchtok(Texte1-Texte2-Texte3,e,2,45) retourne Texte2Encore une fois, on recherche si le Jeton e est présent parmi le Texte. Cependant, on spécifie la deuxième position. $matchtok vérifiera donc si e est présent dans le deuxième jeton et si oui, le retournera. Dans ce cas-ci, il retourne Texte2. Le caractère ASCII est le tiret (45).$matchtok(Texte1;Mot1;Texte3,1,2,59) retourne Mot1Ici, on recherche si le Jeton 1 est présent dans la chaîne de caractères Texte1;Mot1;Texte3. On désire obtenir le deuxième résultat trouvé puisque le chiffre 2 est indiqué. Étant donné que le Jeton se situe plus d'une fois dans le Texte, il est très important de désigner une position désirée. Bref, mIRC retournera Mot1 car c'est le deuxième Jeton contenant 1 répertorié. Le caractère ASCII est le point-virgule (59).Nota Bene : $matchtokcs(Texte,Jeton,N,C) possède les mêmes fonctions que l'identifieur $matchtok(Texte,Jeton,N,C), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte et du Jeton.10. $numtok(Texte,C) Syntaxe :Texte : Le texte qui englobe les JetonsC : La valeur ASCII du caractère séparateurUtilité :Cet identifieur retourne le nombre de Jetons trouvés dans le Texte, tout dépendamment du caractère ASCII.Exemples :$numtok(Texte1-Texte2-Texte3,45) retourne 3On recherche combien de Jetons possède la chaîne de caractères Texte1-Texte2-Texte3. Si vous observez bien le format, vous comprendrez que le Texte en contient 3 si on choisit le tiret (45) comme délimiteur.$numtok(Texte1;Texte2-Texte3-Texte4,59) retourne 2On recherche combien de Jetons séparés par le point-virgule sont présents (59). Il n'y en a que deux, Texte1 et Texte2-Texte3-Texte4.$numtok(Texte1-Texte2-Texte3,59) retourne 1Étant donné que le caractère séparateur, le point virgule (59), est absent dans le Texte, la valeur de retour sera toujours 1.11. $puttok(Texte,Jeton,N,C) Syntaxe :Texte : Le texte qui englobe les JetonsJeton : Le jeton qui en écrasera un autreN : N représente la position où le Jeton sera remplacé dans le TexteC : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à écraserUtilité :$puttok est très similaire à $addtok et $instok. Il a pour but d'ajouter un Jeton au Texte. Cependant, contrairement aux précédents, selon la position déterminée et le caractère ASCII, le Jeton retourné sera remplacé par celui indiqué.Nota Bene: Vous pouvez spécifier une valeur négative à la Nième position, ce qui retournera la Nième position à partir de la fin en décroissant.Exemples :$puttok(Texte1-Texte3-Texte3,Texte2,2,45) retourne Texte1-Texte2-Texte3Comme vous pouvez le constater, on désire écraser le deuxième Jeton du Texte car la position est 2. On veut donc remplacer le deuxième Texte3 par Texte2. Le caractère ASCII est le tiret (45).$puttok(Texte1-Texte2-Texte3;Texte5,Texte4,2,59) retourne Texte1-Texte2-Texte3;Texte4Dans cet exemple, on désire remplacer le deuxième Jeton, soit Texte5, séparé par le point-virgule (59). Le Jeton spécifié est Texte4, ce qui retournera Texte1-Texte2-Texte3;Texte4.$puttok(Texte1-Texte2-Texte4,Texte3,-1,45) retourne Texte1-Texte2-Texte3Étant donné qu'une valeur négative est spécifiée à N, ceci équivaut à la première position à partir de la fin. On veut donc remplacer Texte4 par Texte3. Le tout délimiter par le tiret (45).12. $remtok(Texte,Jeton,N,C) Syntaxe :Texte : Le texte qui englobe les JetonsJeton : Le jeton qui sera effacéN : N représente la position du Nième Jeton trouvé dans le TexteC : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à effacerUtilité :Relativement semblable à $deltok, $remtok a pour but d'effacer un Jeton parmi le Texte. Si le Jeton spécifié existe, il sera supprimer sans pitié. Autrement, le Texte sera retourner tel quel.Exemples :$remtok(Texte1-Texte2-Texte3,Texte1,1,45) retourne Texte2-Texte3Ici, nous tentons d'éliminer le Jeton Texte1 de la chaîne Texte1-Texte2-Texte3. Étant donné que le N correspond au premier Jeton identifié dans le Texte, la valeur de retour sera Texte2-Texte3. Le caractère ASCII est le tiret (45).$remtok(Texte1-Texte2-Texte3,Texte1,2,45) retourne Texte1-Texte2-Texte3Cet exemple est semblable au précédent, mais la Nième fois que le Jeton est trouvé diffère. Étant donné que le Jeton Texte1 n'est pas répertorié deux fois, la valeur de retour est la même que le Texte. Le caractère ASCII est le tiret (45).$remtok(Texte1-Texte2-Texte3-Texte2,Texte2,2,45) retourne Texte1-Texte2-Texte3Dans cet exemple, on désire effacer le Jeton Texte2 du Texte. Vu le N ajusté à 2, nous allons effacer le deuxième Texte2 trouvé. Le caractère ASCII est le tiret (45).Nota Bene : $remtokcs(Texte,Jeton,N,C) possède les mêmes fonctions que l'identifieur $remtok(Texte,Jeton,N,C), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte et du Jeton.13. $reptok(Texte,Jeton,Nouveau Jeton,N,C) Syntaxe :Texte : Le texte qui englobe les JetonsJeton : Le jeton qui sera remplacéNouveau Jeton : Le nouveau jeton qui remplacera l'ancien jetonN : N représente la position du Nième Jeton qui sera remplacé dans le TexteC : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à effacerUtilité :$reptok vise à remplacer un Jeton précis d'une chaîne de caractères par un Nouveau Jeton. Il effectue son changement en fonction du Nième Jeton répertorié et de la valeur ASCII soumise.Exemples :$reptok(Texte1-Texte2-Texte3,Texte1,Texte3,1,45) retourne Texte3-Texte2-Texte3Dans cet exemple, nous voulons remplacer le 1er Jeton repéré, soit Texte1. Étant donné qu'il est bel et bien présent dans la chaîne de caractères, nous le remplacerons par le Nouveau Jeton Texte3. Le caractère ASCII est le tiret (45).$reptok(Texte2-Texte3-Texte2,Texte2,Texte1,2,45) retourne Texte2-Texte3-Texte1Comme vous pouvez le constater, la série Texte2-Texte3-Texte2 contient deux fois le Jeton Texte2. C'est pourquoi la Nième position sélectionnée s'avère cruciale. Bref, nous voulons remplacer le second Texte2 par le Nouveau Jeton Texte1. Le caractère ASCII est le tiret (45).Nota Bene : $reptokcs(Texte,Jeton,Nouveau Jeton,N,C) possède les mêmes fonctions que l'identifieur $reptok(Texte,Jeton,Nouveau Jeton,N,C), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte, du Jeton et du Nouveau Jeton.14. $sorttok(Texte,C,ncra) Syntaxe :Texte : Le texte qui sera classéC : La valeur ASCII qui délimitera le Texte prédéfini du trincra : Les diverses formes de tri pouvant être utiliséesn : tri numérique (1-2-3-4-5)c : tri selon le préfixe des pseudos sur un canalr : Généralement combiné à une autre valeur, r inverse l'ordre du tri (5-4-3-2-1)a : tri alphanumérique (a1-a2-b1-b2-c3)Nota Bene : Le tri par défaut est alphabétique, donc si vous ne spécifiez rien, le Texte sera classé par ordre alphabétique (a-b-c-d-e)Utilité :$sorttok est un token assez spécial. Il sert à trier une chaîne de caractères de façon très spécifique. Le tout alphabétiquement, numériquement, selon les préfixes des pseudos sur un canal ou encore un tri alphanumérique.Exemples :$sorttok(d-z-e-a,45) retourne a-d-e-zAucune valeur n'est spécifiée, donc mIRC attribue celle par défaut; le tri alphabétique. Si vous connaissez moindrement votre alphabet, vous saurez que le classement est juste. Le caractère ASCII est le tiret (45).$sorttok(d-z-e-a,45,r) retourne z-e-d-aLa valeur r a pour but d'inverser le tri alphabétique. Donc il priorisera les dernières lettres de l'alphabet jusqu'à la première. Le caractère ASCII est le tiret (45).$sorttok(b1-a2-e5-d4-e2-a1,45,a) retourne a1-a2-b1-d4-e2-e5Le tri alphanumérique, représenté par la valeur a, classe en ordre les lettres et les chiffres. Il prend donc en considération l'alphabet et notre système décimal. Le caractère ASCII est le tiret (45).$sorttok(b1-a2-e5-d4-e2-a1,45,ar) retourne e5-e2-d4-b1-a2-a1C'est en fait le même exemple que ci-dessus, en exception de la valeur r intégrée. Le tri alphanumérique sera inversé. C'est pourquoi le e5 est classé premier alors que le e2 suit juste après.Nota Bene : $sorttokcs(Texte,C,ncra) possède les mêmes fonctions que l'identifieur $sorttok(Texte,C,ncra), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte et priorisera les majuscules durant le tri.15. $wildtok(Texte,Chaîne avec joker,N,C) Syntaxe :Texte : Le texte que vous désirez reformaterChaîne avec joker : Cette option est le bout de phrase que vous désirez repérer dans le Texte selon les jokers instaurés (*).N : Retourne le Nième Jeton répertorié. Si le chiffre 0 est spécifié, le nombre de résultats trouvés sera retourné.C : La valeur ASCII qui délimitera le Texte prédéfini de la Chaîne avec jokerUtilité :$wildtok se différencie des autres tokens par sa capacité de retourner un bout de phrase s'il existe parmi le Texte. Pour se faire, vous pouvez spécifier des jokers, plus communément connu sous le nom de « petite étoile » ou sous le caractère « * », qui eux remplacent n'importe quel caractère.Exemples :$wildtok(Texte1-Texte2-Texte3,Te*1,1,45) retourne Texte1Ici nous tentons de repérer la première chaîne qui commencerait par Te et qui se terminerait par un 1. Il y a un seul mot qui correspond aux critères exigés, c'est pourquoi Texte1 sera retourné. Le caractère ASCII est le tiret (45).$wildtok(Texte1-Texte1-Texte3,*1,0,45) retourne 2Étant donné que la valeur 0 est spécifiée en terme de position, la résultante sera le nombre de mots qui se terminent par un 1. Nous retrouvons Texte1 à deux reprises et celui-ci se termine par un 1. Il y a donc 2 jetons qui se terminent par un 1 et qui sont délimités par le caractère ASCII du tiret (45).$wildtok(Texte1-Texte2-Texte3,T*x*,3,45) retourne Texte3Finalement, on recherche parmi la chaîne Texte1-Texte2-Texte3 la troisième fois que la Chaîne avec Joker est trouvée. Tous contiennent la lettre T à l'origine et la lettre x qui devrait suivre peu après. Nonobstant, nous avons spécifié le 3e résultat, ce qui retournera Texte3. Le caractère ASCII est le tiret (45).Nota Bene : $wildtokcs(Texte,Chaîne avec joker,N,C) possède les mêmes fonctions que l'identifieur $wildtok(Texte,Chaîne avec joker,N,C), mais est sensible à la case des caractères. Il prend donc en considération les majuscules et les minuscules du Texte et de la Chaîne avec les jokers.16. $didtok(Nom du dialog,ID,C) Syntaxe :Nom du dialog : Le nom du dialog où vous convertirez la liste en jetonsID : Le numéro de l'ID de la liste ou de la boîte comboC : La valeur ASCII qui délimitera le contenu de la listeUtilité :Sert à retourner tout le contenu d'un ID dans un Dialog sur une même ligne. Chacune des lignes de la liste ou de la boîte combo sera séparée par un caractère ASCII. À noter que cet identifieur est utile lorsque le contenu de l'ID est limité, quitte à ne pas recevoir d'erreurs.Exemple :Si par exemple nous avons un Dialog nommé « Didtok ». Par le fait même, celui-ci contient une liste qui a comme ID 1:Texte1Texte2Texte3Nous désirons mettre chaque partie de la liste sur la même ligne et les séparer par un tiret (45). La commande qui devra être utilisée sera :$didtok(Didtok,1,45) retourne Texte1-Texte2-Texte3Nota Bene : Cette commande est seulement valable dans les Dialogs.17. /didtok Syntaxe :Nom du dialog : Le nom du dialog où vous ajouterez le contenu à une liste ou à une boîte comboID : Le numéro de l'ID de la liste ou de la boîte comboC : La valeur ASCII qui délimitera le contenu du TexteTexte : Le texte qui sera ajouté à la liste ou à la boîte comboUtilité :/didtok est une commande très utile lorsqu'on désire optimiser nos codes. Elle produit l'effet contraire de son cousin, $didtok. Elle permet d'ajouter tout le contenu de notre Texte à une liste ou encore à une boîte combo. Cette méthode évite de bien grandes lignes.Exemple :Si par exemple nous avons un Dialog nommé « Didtok ». Par le fait même, celui-ci contient une liste qui a comme ID 1. Cependant, elle est vide pour l'instant et nous désirons y ajouter les valeurs suivantes :Texte1Texte2Texte3Pour se faire, nous devrons utiliser :/didtok Didtok 1 45 Texte1-Texte2-Texte3Cette commande produira l'effet désiré.Nota Bene : Cette commande est seulement valable dans les Dialogs.18. /tokenize Syntaxe :C : La valeur ASCII du caractère séparateurTexte : Le texte qui sera convertit en jetons numérotésUtilité :La commande /tokenize nous permet de convertir un Texte en jetons numérotés. Par la suite, la résultante est beaucoup plus maniable et facile d'utilisation. Le tout en choisissant un caractère ASCII qui lui, délimite le contenu du Texte.Exemples :/tokenize 45 Texte1-Texte2-Texte3 convertira Texte1 en $1, Texte2 en $2 et Texte3 en $3À la suite de cette commande, si vous effectuez ://echo -a $2Vous obtiendrez Texte2Le caractère ASCII spécifié est le tiret (45). mIRC ira donc chercher chaque Jetons du Texte séparé par le tiret pour ensuite en ressortir une liste numérotée./tokenize 59 Texte1;Texte2-Texte3 convertira Texte1 en $1 et Texte2-Texte3 en $2Quelque peu différent du précédent exemple, celui-ci vous prouve que le caractère ASCII est variable. Dans ce cas, nous avons spécifié le point-virgule (59).19. $0, $1, $2, $3,...,$20,$21,... Syntaxe :$0 : Le nombre de jetons dans le Texte séparés par un espace (32)$1 : La première position du Texte$2 : La deuxième position du Texte...$21 La 21e position du TexteUtilité :Ces jetons sont déjà générés par mIRC lui-même, excepté si vous les créez à partir de la commande /tokenize. À mon avis, ces identifieurs infinis sont les plus utiles d'entre tous. Ils permettent de retourner le texte correspondant à la position sélectionnée lors d'un événement quelconque ou même lors d'un alias.Nota Bene : Vous pouvez aussi spécifier tout ce qui suit le $xième jeton en ajoutant un tiret à la fin du $x.Nota Bene 2 : À nouveau, si vous inscrivez le tiret au milieu de deux jetons numérotés, soit $N-$M, la texte entre la Nième position jusqu'à la Mième sera retourné. Dans cet exemple, N et M peuvent être remplacés par n'importe quel nombre.Exemples :alias Texte2 { echo -a $2- }Si vous placez cet alias dans vos contrôles (alt+r) et que vous tapez :/Texte2 Voici un exempleVous obtiendrez les mots « un exemple ». En effet, $2- représente le deuxième mot trouvé et ses suivants.alias Texte2 { echo -a $0 }Cet alias est semblable au précédent. Si vous le placez dans vos contrôles (alt+r) et que vous tapez :/Texte2 Voici un exempleVous obtiendrez le chiffre 3. En effet, $0 représente le nombre de jetons présents qui sont séparés par un espace; le caractère ASCII 32. Dans cet exemple, il y a bel et bien trois mots séparés par un espace.alias Texte2 { echo -a $2-4 }Si vous placez cet alias dans vos contrôles (alt+r) et que vous tapez :/Texte2 Voici un exemple dominanteVous obtiendrez les mots « un exemple dominante ». En effet, $2-4 retourne le deuxième mot trouvé jusqu'au quatrième.Les jetons numérotés sont également valides dans la boîte d'édition.on *:text:*:*:if ($3) { echo -a $3 }Une fois placé dans vos contrôles (alt+r), ceci servira à vous retourner le troisième mot de chaque phrase dictée par autrui. La requête s'effectue seulement s'il y a bel et bien un troisième mot.Finalement, vous saurez constater que les identifieurs $x remplacent des informations manquantes dans de nombreux cas. À vous de les approfondir et de les découvrir davantage.20. Liste des caractères ASCII Je vous invite à entrer le code ci-dessous dans vos contrôles (alt+r) afin de générer une liste automatisée des caractères ASCII. À la suite, il ne vous restera qu'à taper /ascii pour qu'une fenêtre s'offre à vous.alias ascii {  window @Ascii | var %o 1 | while (%o

Adresse d'origine

Ce document intitulé « Les chaînes de caractères (les tokens) » issu de CodeS SourceS (codes-sources.commentcamarche.net) est mis à disposition sous les termes de la licence Creative Commons. Vous pouvez copier, modifier des copies de cette page, dans les conditions fixées par la licence, tant que cette note apparaît clairement.