| Autore: Kaesar83 | Data: 2005-08-28 |
| Modificato:
2005-09-06 |
Letture: 2194 |
|
La conoscenza dei token è ormai diventata quasi indispensabile nel mircscripting medio\avanzato. Ovviamente per chi è alle prime armi, consiglio di tralasciarli e concentrarsi su altri argomenti del linguaggio. I token sono delle stringhe di qualsiasi natura (numeri,lettere,ect) separate l'un l'altra tramite un carattere particolare,"separatore",scelto arbitrariamente dall'utente. (numero,lettera,caratteri di punteggiatura,ect). Ecco una serie di piccoli esempi di Token:
- Ciao come stai <- "Ciao" è un token, "come" è un token, "stai" è un token. Il carattere speciale (separatore) è in questo caso lo "spazio" che appunto differenzia le stringhe tra di loro. - Il.mio.nick.è.Sp <- "Il "mio" "nick" "è" "Sp" rappresentano i 4 token. Il carattere speciale è il "." (punto) - Ecco0Un0Separatore0numerico <- "Ecco" "Un" "Separatore" "Numerico" i token. Il carattere speciale è lo zero (0)
Adesso cercherò di analizzare tutti gli identificatori tokens a nostra disposizione.
$addtok sintassi: $addtok(text,token,C) Permette di aggiungere un token all'interno del testo, solo se questo non è già presente nello stesso. Es.:
//echo -a $addtok(a.b.c.d,e,46) questo aggiungerà la lettera e al testo a.b.c.d ottenendo come risultato finale a.b.c.d.e quel 46 è il codice ascii del punto (cosiddetto delimitatore) che divide le varie lettere, ci fossero stati spazi avremmo dovuto inserire il 32 (codice ascii dello spazio)
//echo -a $addtok(c i a,o,32) questo aggiungerà la o al testo c i a ottenendo quindi c i a o semplice no?
$deltok sintassi: $deltok(text,N-N2,C) Permette di cancellare l'Nesimo token dal testo. Es.:
//echo -a $deltok(a.b.c.d,3,46) questo cancellerà la lettera in "terza posizione" quindi il risultato sarà a.b.d
//echo -a $deltok(a.b.c.d.e,2-4,46) questo invece cancellerà l'intervallo di lettere che va dalla seconda alla quarta quindi avremo un risultato di questo tipo a.e
Per un esempio un pò più pratico invece vi consiglio //echo -a $deltok($address($me,2),1,64) permetterà di cancellare la prima parte della mask, cioè quella prima della @ (il quale valore ascii è appunto 64) ottenendo come risultato unicamente l'host della vostra mask.
$findtok sintassi: $findtok(text,token,N,C) Permette di trovare la posizione di un token all'interno di un testo. Es.:
//echo -a $findtok(a.b.c.d,c,1,46) Questo restituirà 3, cioè la posizione del primo token c all'interno del testo a.b.c.d, se avessimo specificato il 2 al psoto del 1, in un testo con più c, ad esempio //echo -a $findtok(a.b.c.d.c.e,c,1,46) avremmo avuto come risultato il numero 5, cioè la posizione della seconda c
//echo -a $findtok(a.b.c.d,e,1,46) Questo restituirà $null in quanto la e non è presente nel testo
Specificando lo 0, invece si ottiene il numero di volte totale che è preente un token all'interno del testo //echo -a $findtok(k.a.e.s.a.r,a,0,46) si ottiene 2, cioè son presenti due a all'interno del testo k.a.e.s.a.r
$gettok sintassi: $gettok(text,N,C) Restituisce l'ennesimo token nel testo
//echo -a $gettok(a.b.c.d.e,3,46) Questo restituirà c proprio perchè in terza posizione nel testo, è presente c
//echo -a $gettok(a.b.c.d.e,9,46) Restituirà $null perchè non esiste una posizione 9 in quanto il testo è costituito da 5 posizioni totali.
//echo -a $gettok(a.b.c.d.e,2-,46) Restituirà il testo che va dal secondo token in poi, cioè avremo b.c.d.e
//echo -a $gettok(a.b.c.d.e,2-4,46) Restituirà il testo compreso tra il secondo ed il quarto token, cioè b.c.d
E' possibile anche specificare numeri negativi, in questo modo si partirà dall'ultimo token e non dal primo. Se facciamo //echo -a $gettok(a.b.c.d.e,-2,46) avremo d, cioè il secondo token a partire da destra (dalla fine del testo)
$instok sintassi: $instok(text,token,N,C) Permette di inserire un token nell'ennesima posizione nel testo
//echo -a $instok(a.b.d,c,3,46) Questo inserirà il token c nella posizione 3, cioè subito dopo b, avremo così un risultato finale di questo tipo a.b.c.d
E' possibile inserire anche un numero negativo. Questo come nel precedente identificatore permetterà di partire dall'ultima lettera invece che dalla prima. Provando //echo -a $instok(a.b.d,c,-2,46) constateremo che il risultato sarà a.c.b.d in più scrivendo //echo -a $instok(a.b.d,c,0,46) avremo un risultato a.b.d.c
$istok sintassi: $istok(text,token,C) Questo identificatore serve per controllare la presenza di un token all'interno del testo restituendo $true in caso affermativo e $false in caso negativo
//echo -a $istok(k.a.e.s.a.r,a,46) In questo esempio avremo chiaramente il risultato $true, in quanto la a è presente nel testo specificato
$matchok sintassi: $matchtok(tokens,string,N,C) Restituisce il token specificando una stringa contenuta nel token stesso
//echo -a $matchtok(one two three, e, 0, 32) In questo caso restituisce il numero totale di token presenti che contengono la stringa e
//echo -a $matchtok(one two three, e, 1, 32) In questo caso il risultato sarà one, cioè il primo token che contiene la stringa e, se avessi inserito 2 al posto di 1 il risultato sarebbe stato three, cioè il secondo token contenente la stringa e $numtok sintassi: $numtok(text,C) Restituisce il numero di tokens presenti nel testo //echo -a $numtok(k.a.e.s.a.r,46) Il risultato sarà 6 $puttok sintassi: $puttok(text,token,N,C) Sovrascrive l'ennesimo token presente nel testo con un nuovo token //echo -a $puttok(a.b.c.d,e,2,46) Questo permette di sostituire il token in seconda posizione con la lettera e ottenendo come risultato a.e.c.d
E' possibile anche specificare valori negativi come nei precedenti identificatori
$remtok sintassi: $remtok(text,token,N,C) Permette di rimuovere l'ennesimo token dal testo
//echo -a $remtok(a.b.c.d,b,1,46) Questo restituirà a.c.d, cioè rimuove il token b
//echo -a $remtok(k.a.e.s.a.r,a,2,46) Questo eliminerà il secondo token a, quindi otterremo k.a.e.s.r
//echo -a $remtok(a.b.c.d,e,1,46) Questo restituirà soltanto a.b.c.d in quanto non è presente alcun token e quindi non può rimuovere nulla
$reptok sintassi: $reptok(text,token,new,N,C) Rimpiazza l'ennesimo token nel testo con un nuovo token
//echo -a $reptok(a.b.c.d,b,e,1,46) Questo rimpiazza il token b con e quindi avremo come risultato finale a.e.c.d
//echo -a $reptok(a.b.a.d,a,c,2,46) Questo rimpiazza il secondo token a con c restituendo come risultato finale a.b.c.d
$sortok sintassi: $sorttok(text,C,ncra) Ordina i tokens nel testo
//echo -a $sorttok(e.d.c.b.a,46) Il risultato ottenuto sarà a.b.c.d.e, cioè ordinerà semplicemente in ordine alfabetico
//echo -a $sorttok(1.3.5.2.4,46,nr) Questo ordinerà i token numericamente ma in senso inverso, ottenendo 5.4.3.2.1
Di Default l'ordinamento è alfabetico, le flags che è possibile specificare sono 4:
n = ordine numerico r = ordine inverso c = ordine nick in canale a = ordine alfanumerico
$wildtok sintassi: $wildtok(tokens,wildstring,N,C) Restituisce l'ennesimo token che comprende la stringa wildcard
//echo -a $wildtok(one two three, t*, 0, 32) Questo restituirà 2, cioè il numero totale dei tokens che iniziano per t
//echo -a $wildtok(one two three, t*e, 1, 32) Questo com'è facilmente intuibile restituirà il primo token che inizia per t e finisce per e, quindi escludendo two che non contiene una e è facile capire che il risultato finale sarà three
Con questo ho finito, spero abbia fatto un pò di chiarezza nella vostra mente sugli identificatori tokens :) Alla prossima
|