Tokkens

    1.- ¿Qué son? ¿Para que sirven? Los tokkens son identificadores, por eso mismo nos devuelven un valor determinado. Gracias a los tokkens podemos trabajar con cadenas de texto y extraer, añadir, remplazar, eliminar... cualquier palabra que se encuentre dentro de la cadena.

    2.- Usando los tokkens: La estructura de la mayoria de los tokkens es: $tokken(cadena,N,Ascii) o bien $tokken(cadena,subcadena,N,Ascii).

  • Cadena hace refrencia a la cadena de texto sobre la cual vamos a actuar; puede ser una cadena de texto propiamente dicha, una variables o un identificador (pe: $1-).
  • N hace referencia a la posición del tokken que queremos extraer (para el 1º caso); o bien la subcadena sobre la cual trabajaremos (para el 2º caso)
  • Ascii Hace referencia al ascii del caracter que actua como separador en la "cadena madre", puede ser el que ustedes querais usar.

    3.- Distintos tipos de tokkesn que nos podemos encontrar:

  • 3.1.- $gettok: $gettok(cadena,N,ascii)
    • $gettok(Esto es una prueba de tokkens,2,32) nos devuelve: es
    • $gettok(Esto es una prueba de tokkens,2-5,32) nos devuelve: esuna prueba de
    • $gettok(Esto es una prueba de tokkens,3-,32) nos devuelve: una prueba de tokkens
  • 3.2.- $addtok: $addtok(cadena,objeto,ascii) Añadimos el objeto indicado (en caso de que exista, no se añade ningun objeto)
    • $addtok(Esto es una prueba de tokkens,¿ok?,32) node devuelve: Esto es una prueba de tokkens ¿ok?
  • 3.3.- $deltok: $deltok(cadena,N,ascii) Borramos el objeto que ocupa la posición indicada
    • $deltok(Esto es una prueba de tokkens,1,32) nos devuelve: es una prueba de tokkens
  • 3.4.- $findtok: $findtok(cadena,subcadena,N,32) Nos devuelve la posición que ocupa la subcadena indicada
    • $findtok(Esto es una prueba de tokkens, prueba prueba prueba,prueba,1,32) nos devuelve 4
    • $findtok(Esto es una prueba de tokkens, prueba prueba prueba,prueba,2,32) nos devuelve 7
    • $findtok(Esto es una prueba de tokkens, prueba prueba prueba,prueba,4,32) nos devuelve 9
  • 3.5.- $instok: $instok(cadena,objeto,N,ascii) Insertamos el objeto en la posicion indicada (si existen objetos por detras, estos se ven desplazados)
    • $instok(Esto una prueba,es,2,32) nos devuelve: Esto es una prueba
    • $instok(Esto.es.muy.dificil,no,2,46) nos devuelve: Esto.no.es.muy.dificil (OJO: utilize el pto como caracter separador, cuyo ascii es el 46)
  • 3.6.- $numtok: $numtok(cadena,ascii) Nos da el numero de objetos existentes en la cadena
    • $numtok(Esto es una prueba,32) nos devuelve: 4
  • 3.7.- $puttok: $puttok(cadena,objeto,N,ascii) Sobreescribe la posicion N con el nuevo onjeto
    • $puttok(Esto se complica,facil,3,32) nos devuelve: Esto es facil
  • 3.8.- $reptok: $reptok(cadena,objeto,nuevo_objeto,N,32) Reemplaza el objeto indicado por el nuevo objeto (N hace referencia al objeto, si N es 1 remplaza el 1º objeto que encuentre; si es 3 reemplaza el 3 objeto que encuentre...)
    • $reptok(Ufff parece que ahora viene lo dificil ¿verdad?,¿verdad?,:pono,1,32) nos devuelve: Ufff parece que ahora viene lo dificil :pono
    • $reptok(pepe luis pablo juan pepe sabio,pepe,pepelu,2,32) nos devulve: pepe luis pablo juan pepelu sabio
  • 3.9.- $remtok: $remtok(cadena,objeto,N,32)
    • $remtok(pepe luis pablo pepe sabio,pepe,2,32) node devuelve: pepe luis pablo sabio

Estos son los tokkens más usuales, o almenos los que yo más uso, si quereis ver los tokkens que faltan: /help tokkens

    4.- Utilidad de los tokkens: Su utilidad es muy "grande y variada", pueden servir para hacer un Nick completion de forma que complete todos los nick que pongamos independientemente de la posición que ocupe y los mas importante: que descrimine entre nick y palabra [ Vease: [ Nick Completion v2.0 ], también puede servir para agrupar una serie de valores dentro de una única variable; de forma que en vez de tener 10 variables distintas tengamos una unica variable que haga la función de esas 10 , también nos puede servir para crearnos una shitlist...

    5.- Ejemplo de uso de tokkens: Creacion de una shitlist mediante tokkens

(en popups):

Shitlist:
.Añadir: set %shitlist $addtok(%shitlist,$$1,32)
.Eliminar: set %shitlist $remtok(%shitlist,$$1,1,32)

(en remotes):

on *:join:#:{
if ($me isop $chan) && ($nick isin %shitlist) { mode # +b $address($nick,2) | kick # $nick Estas en mi "lista-negra" bye bye }
}

Esta es una "Shitlist" bastante "primitiva" pues el numero de nicks que puedes meter en la shitlist esta limitado por la variable, ya que estas solo pueden contener un número determinado de caracteres. Si se sobre pasa este número de caracteres, el mIRC dara un mensaje de error tipo *** /set: string too long o similar.