Chapitre 6 : Les tokens
Le logiciel mirc prévoit la possibilité de traiter des listes de mots. Ceci grâce aux fonctions
relatives aux tokens. Les tokens présentent de plus une alternative intéressante à l'absence
de tableaux.
Une liste est en fait une série de tokens (mots) séparés par un caractère spécial
appelé séparateur de token. Le séparateur le plus connu est la virgule, mais on peut aussi
utiliser le point-virgule ; les deux points : ou l'espacement simple.
La fonction permettant d'aller chercher un token dans toute une liste où les mots
sont séparés par un caractère séparateur est:
$gettok(<liste>,<Numéro du token>,<Valeur ascii du séparateur>)
Par exemple, mettons que %tokens contiennent les mots suivants:
Donald Picsou Riri Fifi Loulou
Alors $gettok(%tokens,2,32) fournit: Picsou, et $gettok(%tokens,0,32)
fournit 5.
Le séparateur est en effet l'espace, de code ascii 32.
Les codes ascii les plus courants sont:
44 pour la virgule
46 pour le point
59 pour le point virgule
58 pour les deux points
32 pour l'espace
33 pour le point d'exclamation
A noter que $gettok(<tokens>,0,32) retourne le nombre de mots qu'il y a dans la liste.
Il existe tout un jeu de fonctions permettant de manipuler les tokens. Parmi eux:
$findtok(texte,token,N,C) : Cherche la position du N ième mot égale à token dans texte.
Ex:
$findtok(a.b.c.d,c,1,46) retourne 3
$findtok(a.b.c.d,e,1,46) retourne la chaîne vide ($null)
$deltok(texte,N,C) : supprime le N ième token dans texte. Ex:
$deltok(a.b.c.d,3,46) retourne a.b.d
Ces trois fonction $gettok, $deltok et $findtok sont celles que j'utilise le plus couramment.
Pour avoir des détails sur les autres, faire /help tokens dans mirc.
On peut voir tout de suite l'intérêt d'utiliser les tokens pour gérer des tableaux
de valeurs. En effet, je le rappelle, il n'existe pas sous mirc de moyen simple de créer des
tableaux référençables par une expression du genre table[i].
Le moyen consiste à créer une liste de valeurs (de mots), séparées par un espace ou par une virgule. Par
exemple:
%Nicks = Donald Picsou Riri Fifi Loulou Mickey Dingo Minnie Gontran Popop Pluto Flairsou Rapetou Joe Jack William LuckyLuke Rantanpla GeoTrouve Filament
Pour accéder au ième nick, on pourra faire:
%LeNick = $gettok(%Nicks,%i,32)
Pour obtenir la dimension du tableau, ce sera:
%dimension = $gettok(%Nicks,0,32)
D'autres moyens existent pour simuler des tableaux, comme par exemple créer une variable terminée
par un nombre, comme présenté dans cet alias:
essai {
%i = 0
:boucle
set %Lettre $+ %i $rand(A,Z)
inc %i
if ( %i < 20 ) goto boucle
%N = $?="Numéro de la lettre que voulez vous voir"
%temp = % $+ Lettre $+ %N | %temp = [ [ %temp ] ] <---- /!\On a besoin de deux double crochets d'évaluation
echo 1 -a La %N eme lettre aléatoire est %temp
unset %Lettre*
}
La première partie de l'alias fabrique 20 variables appelées %Lettre1, %Lettre2, %Lettre3 ...
%Lettre20 et leur assigne une lettre de l'alphabet aléatoire. La seconde partie de l'alias
vous permet d'afficher la n ième lettre du tableau de lettres ainsi construit.
La dernière instruction unset efface le tableau lettre, c'est a dire qu'elle commande
à mirc d'oublier toutes les variables commençant par %Lettre.
Précédent: Les sockets serveur Suivant: Les fichiers
Début de page Sommaire