IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)

Notions intermédiaires en mIRC scripting


précédentsommairesuivant

III. Les tokens

III-A. Définition

Un Token (ou jeton) est un ensemble de caractères (pas forcément un mot).
Pour parler de Tokens, on parle avant tout de séparateur (un caractère ASCII) qui sépare un ensemble de caractères en plusieurs sous-ensembles (tokens).
Exemple
Soit la ligne suivante :

 
Sélectionnez
123;abc:xy:z;2006

Si on prend le point-virgule comme séparateur :
123;abc:xy:z;2006
Notre premier Token sera 123, le deuxième abc:xy:z et le troisième 2006 Alors que si on prend les deux-points comme séparateur, le premier Token sera 123;abc, le deuxième xy et le troisième z;2006.
Une application simple des Tokens pourrait être un script qui isole le jour, mois et année d'une date.
Bien sûr mIRC offre une multitude de fonctions pour gérer les Tokens, c'est ce qu'on va voir dans ce chapitre.

III-B. Fonctions de traitement des tokens

III-B-1. $gettok(texte,N1-N2,S)

Cette fonction permet de chercher un token dans une chaîne de caractères.

  • texte - texte contenant les tokens.
  • N1-N2 - N1 étant la position du token dans le texte (N2 optionnel servant à définir un intervalle ex. : 3-5).
  • S - la valeur ASCII du caractère séparateur.

Exemple :

 
Sélectionnez
$gettok(1;2;3,2,59) retourne 2
$gettok(a.b.c.d,3-,46) retourne c.d
$gettok(a.b.c.d,5,46) retourne $null
$gettok(1.2.3.4,-2,46) retourne 3
  • Une valeur négative de N1 retourne la position du Token en partant de la fin.
  • Les séparateurs au début et à la fin d'une chaine de caractères sont tout simplement omis.
  • Si un séparateur est en double (;;) il est tout considéré comme un seul séparateur (;).
  • Si vous utilisez comme séparateur un caractère non existant dans la chaîne, $gettok(texte,1,S) retournera toujours texte.
  • $gettok(texte,0,S) retourne le nombre de tokens trouvés dans la chaîne ce qui peut être interessant pour parcourir celle-ci et afficher les tokens un par un.

III-B-2. $findtok(texte,token,N,S)

Cette fonction retourne la position du token donné en paramètre.

  • texte - texte contenant les tokens.
  • token- token recherché.
  • N- N est le Nième token trouvé dans la chaîne (N = 0 retourne le nombre total trouvé).
  • S- la valeur ASCII du caractère séparateur.


Exemple :

 
Sélectionnez
$findtok(1;2;3,x,1,59) retourne $null
$findtok(a.b.c.d,c,1,46) retourne 3
$findtok(a.b.c.c.d.c,c,2,46) retourne 4

III-B-3. $addtok(texte,token,S)

Cette fonction ajoute un token à la liste des tokens s'il n'y est pas déjà, il retourne le texte avec le token ajouté si l'opération a eu lieu.

  • texte - texte contenant les tokens.
  • token- token à ajouter.
  • S- la valeur ASCII du caractère séparateur.


Exemple :

 
Sélectionnez
$addtok(1;2,3,59) retourne 1;2;3
$addtok(a.b.c,c,46) retourne a.b.c
$addtok(a.b.c,f,59) retourne a.b.c;f

III-B-4. $deltok(texte,N-N1,S)

Cette fonction efface le token dont la position est N et retourne le texte modifié.

  • texte - texte contenant les tokens.
  • N-N1- N étant le numéro du token dans le texte (N1 optionnel servant à définir un intervalle ex. : 3-5).
  • S- la valeur ASCII du caractère séparateur.


Exemple :

 
Sélectionnez
$deltok(1;2,3,59) retourne $null
$deltok(a.b.c,1,46) retourne b.c

III-B-5. $istok(texte,token,S)

Cette fonction retourne $true si le token est dans le texte sinon il retourne $false.

  • texte - texte contenant les tokens.
  • token- token à comparer.
  • S- la valeur ASCII du caractère séparateur.


Exemple :

 
Sélectionnez
$istok(1;2,3,59) retourne $false
$istok(a.b.c,a,46) retourne $true

Il existe plusieurs fonctions pour les tokens, je vous invite fortement à les consulter directement sur l'aide de mIRC.

III-C. Conversion d'un texte en tokens

 
Sélectionnez
/tokenize S texte
  • S - la valeur ASCII du caractère séparateur.
  • texte- texte contenant les tokens.

La commande /tokenize convertit un texte en tokens numérotés pour faciliter leur utilisation.

 
Sélectionnez
/tokenize 45 t1-t2-t3-t4

convertira t1 en $1, t2 en $2, t3 en $3 et t4 en $4.
$0 est le nombre de tokens.

Pour avoir le code ASCII d'un caractère :

 
Sélectionnez
//echo -a $asc(caractère)

précédentsommairesuivant

Copyright © 2006 Soufiane Hassou. Aucune reproduction, même partielle, ne peut être faite de ce site ni de l'ensemble de son contenu : textes, documents, images, etc. sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à trois ans de prison et jusqu'à 300 000 € de dommages et intérêts.