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:34
Ceci 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:34
Par 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 :
3. $addtok(Texte,Jeton,C) Syntaxe :- Texte : Le texte qui englobe les jetons
- Jeton : Les jetons qui seront ajoutés au texte
- C : La valeur ASCII qui séparera le Texte prédéfini du Jeton
Utilité :
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-Texte4
|
|
On 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-Texte3
|
|
On 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-Texte2
|
|
On 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 jetons
- N-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 Jeton
Utilité :
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-Texte3
|
|
On 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-Texte2
|
|
On 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 Texte1
|
|
On 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-Texte4
|
|
On 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 Jetons
- Jeton : Le jeton qui sera recherché parmi le Texte
- N : 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 Jeton
Utilité :
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 2
|
|
On 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 1
|
|
On 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 3
|
|
On 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 Jetons
- N-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 Jeton
Utilité :
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 Texte2
|
|
On 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 Texte3
|
|
On 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;Texte2
|
|
On 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 Jetons
- Jeton : Le jeton qui sera ajouté au Texte
- N : 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 à ajouter
Utilité :
$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 Jetons
- Jeton : Le jeton qui sera recherché au Texte
- C : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à rechercher
Utilité :
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 :
On 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.
On 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 Jetons
- Jeton : Le jeton qui sera recherché parmi le Texte
- N : 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 Jeton
Utilité :
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 3
|
|
On 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 Texte2
|
|
Encore 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 Mot1
|
|
Ici, 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 Jetons
- C : La valeur ASCII du caractère séparateur
Utilité :
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 3
|
|
On 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 2
|
|
On 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 Jetons
- Jeton : Le jeton qui en écrasera un autre
- N : N représente la position où le Jeton sera remplacé dans le Texte
- C : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à écraser
Utilité :
$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-Texte3
|
|
Comme 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;Texte4
|
|
Dans 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 Jetons
- Jeton : Le jeton qui sera effacé
- N : N représente la position du Nième Jeton trouvé dans le Texte
- C : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à effacer
Utilité :
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-Texte3
|
|
Ici, 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-Texte3
|
|
Cet 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-Texte3
|
|
Dans 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 Jetons
- Jeton : Le jeton qui sera remplacé
- Nouveau Jeton : Le nouveau jeton qui remplacera l'ancien jeton
- N : N représente la position du Nième Jeton qui sera remplacé dans le Texte
- C : La valeur ASCII qui délimitera le Texte prédéfini du Jeton à effacer
Utilité :
$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-Texte3
|
|
Dans 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-Texte1
|
|
Comme 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 tri
- ncra : Les diverses formes de tri pouvant être utilisées
n : tri numérique (1-2-3-4-5)
c : tri selon le préfixe des pseudos sur un canal
r : 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 :
Aucune 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).
La 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-e5
|
|
Le 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-a1
|
|
C'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 reformater
- Chaî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 joker
Utilité :
$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 Texte1
|
|
Ici 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 Texte3
|
|
Finalement, 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 jetons
- ID : Le numéro de l'ID de la liste ou de la boîte combo
- C : La valeur ASCII qui délimitera le contenu de la liste
Utilité :
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:
Texte1
Texte2
Texte3
Nous 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-Texte3
|
|
Nota 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 combo
- ID : Le numéro de l'ID de la liste ou de la boîte combo
- C : La valeur ASCII qui délimitera le contenu du Texte
- Texte : Le texte qui sera ajouté à la liste ou à la boîte combo
Utilité :
/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 :
Texte1
Texte2
Texte3
Pour se faire, nous devrons utiliser :
/didtok Didtok 1 45 Texte1-Texte2-Texte3
|
|
Cette 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éparateur
- Texte : Le texte qui sera convertit en jetons numérotés
Utilité :
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 :
Vous 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 $2
|
|
Quelque 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 Texte
Utilité :
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 :
Si vous placez cet alias dans vos contrôles (
alt+r) et que vous tapez :
Vous obtiendrez les mots «
un exemple ». En effet,
$2- représente le deuxième mot trouvé et ses suivants.
Cet alias est semblable au précédent. Si vous le placez dans vos contrôles (
alt+r) et que vous tapez :
Vous 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.
Si vous placez cet alias dans vos contrôles (
alt+r) et que vous tapez :
/Texte2 Voici un exemple dominante
|
|
Vous 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.
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.
Nota Bene: Un identifieur est déjà conçu pour retourner la valeur ASCII d'un caractère précis. Par exemple, si vous désirez connaître le tiret, il vous suffit de taper :
Nota Bene 2 : Voici la valeur ASCII des caractères suivants, qui sont parfois omis par plusieurs :
- Ctrl+B - Gras : 2
- Ctrl+K - Coloré : 3
- Ctrl+O - Annulé : 15
- Ctrl+S - Souligné : 31
- Barre d'espacement: 32
21. Conclusion
En concluant, les jetons sont très simples d'utilisation. Ils font parti des outils les plus puissants du langage mIRC, il ne faut surtout pas les négliger. Je vous rappel qu'ils sont utiles dans la plupart des situations et leur utilisation est quintessenciel.
J'ai eu beaucoup de plaisir à écrire ce tutorial et j'ai dépensé beaucoup de mon temps. J'ai tenté d'intégrer un maximum d'explications pour qu'il soit utile et clair pour tous les niveaux. Or, j'espère que vous en ferez bon usage !
Rédigé par Raynor le 19 février 2005