MyChat Scripts: функция mIncUIN, найти следующий за указанным UIN зарегистрированного пользователя
Функция для получения следующего уникального номера зарегистрированного на сервере пользователя.
UIN-ы пользователей уникальны и никогда не повторяются. UIN=0 — это встроенный робот Elisa, UIN=1 — пользователь-администратор для управления сервером. Все остальные пользователи могут создаваться и удаляться, но освобождённые UIN-ы в дальнейшем не используются из-за соблюдения целостности баз данных.
Чтобы перебирать существующие UIN-ы пользователей, пропуская "дыры", удобно пользоваться функциями mIncUIN и mDecUIN.
Синтаксис
function mIncUIN(iUIN: integer): integer;
Параметры и возвращаемые значения
Параметр |
Тип |
Значение |
iUIN |
integer |
уникальный идентификатор пользователя, следующий за которым нужно найти. |
Результат функции
>0 |
следующий UIN; |
-1 |
стартовый UIN не существует на сервере; |
-2 |
больше UIN-ов нет. |
Пример
Перебираем все зарегистрированные UIN-ы, начиная с 1, считаем количество парных уникальных идентификаторов зарегистрированных пользователей.
const
START_UIN = 1;
var
iCount, iUIN: integer;
begin
iCount := 0;
iUIN := START_UIN;
repeat
iUIN := mIncUIN(iUIN);
if iUIN mod 2 = 0 then inc(iCount);
until iUIN < 0;
mLogScript('Paired UINs count: ' + IntToStr(iCount), '');
end.
Результат работы скрипта
[19:52:58] (Log "mIncUIN"): Paired UINs count: 4004
[19:52:58] (Run "mIncUIN"): Время выполнения скрипта: 52 мс
[19:52:58] (Run "mIncUIN"): Скрипт выполнен успешно.