TypingNotifications := false;
UIN := UINj
Password := Password_;
try Login($ 10000000); except 1од(‘Нет подключе-
ния.
..’) end
end;
// бесконечный цикл обработки сообщений
try while GetMessage(Msg, 0, 0, 0) do begin
TranslateMessage(Msg);
DispatchMessage(Msg)
end
finally Serverl .Free; timer_destroy; ini.Free end
end.
События компонента TICQClient:
procedure send(uin,txt: string);
begin // проверка loggedin- уже есть в компоненте
serverl .ICQClientl .SendMessage(strtoint(uin), txt)
end;
procedure
icqsock.ConnectionFailed(Sender:
TObject);
begin
gl_mig:= false;
log(‘Подключение сорвалось! Переподключаем-
ся.
..’);
try serverl .ICQClientl .Login($ 10000000) except end
end;
procedure icqsock.Login(Sender: TObject);
begin
gl_mig:= true;
1од(‘Успешно подключились под номером ‘ +
lntToStr(serverl .ICQClientl .UIN));
serverl .ICQClientl .MasklntoQIP($09090909); //
маскируемся под QIP
end;
procedure icqsock.LogOff(Sender: TObject);
begin
gl_mig:= false;
1од(‘Успешно отключились’)
end;
Ведение отчета об произведенных подклю- ф
чениях, присланных сообщениях и запросах
осуществим с помощью команд
R e w r ite ( )
и
W rite L n f).
Ведение файла отчета:
procedure log(EventText: String);
var f: TextFile;
begin
AssignFile(f,’log.txt’); {$|-}
Append(f);
if lOResultoO then begin
{SI-}
Rewrite(f);
{$!+}
if lOResultoO then Exit
end;
WriteLn(f, formatdatetime(‘dd:mm:yyyy ‘,date)+
formatdatetime(‘hh:mm:ss’,time) + ‘ | ‘ + EventText +
#13);
CloseFile(f)
end;
При этом, скомпилировав наш проект на данном
этапе, убедимся в работоспособности ведения
лога (рис. 3):
И собственно то, ради чего все задумывалось - вы-
борка и поиск запроса из нашей базы, доступ по па-
ролю и отсылка найденной информации запросив-
шему клиенту. Как же это осуществить?
Все достаточно просто. Воспользуемся извест-
ной функцией
P O S ()
или
P O S E x f)
для поиска по
текстовому файлу базы. Реализация подобного
подхода отображена в “интеллектуальном” моду-
ле обработки команд с Интернета:
procedure
icqsock. MessageRecv(Sender:
TObject; Msg, UIN: String);
var hello,by, temp, search: string;
start: boolean;
begin
hello:= ‘HELP/RAMEDIA. ICQ информационный
бот приветствует вас:’# 10 +
‘напишите свой вопрос - получите ответ.
..’;
1од(‘От ‘ + UIN + ‘ принято сообщение: ‘ + Msg);
send(uin, hello); // автоответчик
if dostup=” then begin
msg:= trim(lowercase(msg)); // выделяем запрос
temp:= ”; search:=
start:= false;
AssignFile(fl,bd);
Reset(fl);
repeat // сканируем базу ответов и вопросов
83:06:2018 09:29:08 | Оииг.кл! Could not resolve host
03:86:2010 89:29:08 | Подключение
сорвалось*
Перепояключаемся. . .
83:86:2810 89:3B:h9 | Qнивка! Connection failed. Your I Cl) nunber or password was rejected.
83:06:2810 89:38:69 | Подключение сорвалось* Переподкдвчлепся
__
0.1:06:2018 89:39:31 | Яспевно подключились поя номером
9/Я352525
Р и с . 3 . Л о к и р о в а н и е з а п р о с о в и ст ат уса авт обот а
предыдущая страница 38 Компьютер 2013 02 читать онлайн следующая страница 40 Компьютер 2013 02 читать онлайн Домой Выключить/включить текст