Об IRC. Доступно и со вкусом.

Учимся работать с токенами в mIRC

Данная статья посвящена рассмотрению некоторых, наиболее часто встречаемых токенов.
Я думаю, не один более или менее солидный скрипт не обходится без токенов. Если же вы до сих пор не знаете что это такое и с чем их едят, то не отчаивайтесь, после прочтения данной статьи вы сможете уже писать небольшие скриптики с их помощью.
Итак, начнем. Первый, и один из самых популярных идентификаторов для работы с токенами это безусловно - $gettok.
Синтаксис данного идентификатора - $gettok(text,N,C)
text - это сообственно текст, который вы хотите обрабатывать
N - номер токена который мы хотим взять
C - ascii символ-разделитель нашего токена.
Иными словами, токен - это какой-то кусок из текста. Если вы не знаете ascii символ вашего разделителя, наберите в эдитбокс - //echo -a $asc(:),(обязательно две палки (//)), где двоеточие(:) и будет разделитель.
Чтобы окончательно вас не запутать рассмотрим работу $gettok на нескольких примерах и все станет ясно:
Пример1:
пишем в эдитбокс //echo -a $gettok(Мама сшила мне штаны из березовой коры,4,32). Данная команда вернет нам слово "штаны". Теперь разберем работу:
$gettok(text,N,C) в нашем случае выглядит как $gettok(Мама сшила мне штаны из березовой коры,4,32)
text - Мама сшила мне штаны из березовой коры
N - 4
C - 32
Итак мы берем из text 4 слово(токен) с разделителем между словами(токенами) 32 - это ascii символ пробела.

Пример2:
более сложный пример //echo -a $gettok($gettok(раз:два;три:четыре,2,59),1,58). На экран нам выведет слово "три". Как видим данный пример состоит из двух использований идентификатора $gettok. Для разбора начинать следует изнутри:
$gettok($gettok(раз:два;три:четыре,2,59),1,58), т.е. сначало рассмотрим работу $gettok(раз:два;три:четыре,2,59). Оснополагаясь на предыдущий пример мы видим:
text - раз:два;три:четыре
N - 2
C - 59
Мы берем 2 токен из text с ascii символом 59, что соответствует символу ";", т.е. после работы данного идентификатора плучится текст "три:четыре".
Далее, теперь самостоятельно попробуйте понять как работает $gettok(три:четыре,1,58).

Следущим идентификатором, который я хотел бы разобрать будет - $numtok, он показывает количество токенов в тексте. Синтаксис - $numtok(text,C). Что такое text и С смотрите выше.
А пока разберем пример //echo -a $numtok(наш сайт самый реальный,32). После ввода команды мы увидим число 4. И действительно количество слов(токенов) с разделителем 32(пробел) равно 4.
Наиболее частое распростронение $numtok получил в циклах while:
test.tok {
var %i = 1
while (%i <= $numtok($1-,32)) {
echo -a $gettok($1-,%i,32)
inc %i
}
}
Рассматривать подробно работу данного цикла я специально не буду, т.к. хочу чтобы и вы немного подумали ;)
Вставляете его в алиасы(aliases) и пишете в эдитбоксе - /test.tok Мама сшила мне штаны из березовой коры.

Существует еще несколько идентификаторов токенов, но они не так часто применяются и поняв работу этих двух разобраться с остальными не составит большого труда. В хелпе они рассмотрены даже с маленькими примерами. Если же что-то будет непонятно с ними,отпишитесь и возможно я напишу еще одну статью про токены.

Удачи.