PDA

Просмотр полной версии : Icq бот на Delphi


-Hormold-
21.04.2008, 13:25
Пишу бота на Delphi, хотел узнать как сделать распознование команд таких как !md5 123
Простая команда работает так:
if Msg='!md5'//Команда
then
begin
ICQClient.SendMessage(UIN,'тут ответ');//ответ
end;
а как сделать чтоб команда могла буть !md5 123 и ответ был например 202cb962ac59075b964b07152d234b70

Помогит пожалуйста.

Hellsp@wn
21.04.2008, 13:54
Msg:='!md5 12345';
If (pos('!md5',Msg) = 1) and (length(Msg)>5) then
begin
pass:=copy(Msg,6,length(Msg)-5);
hash:=GetMd5(pass);
end;

-Hormold-
21.04.2008, 14:26
Странно...
Скинь класс компонент GetMd5

-Hormold-
21.04.2008, 14:35
Спасибо =)
Нашёл...

Hellsp@wn
21.04.2008, 15:01
тебе ещё и мд5 класс)) уж сам найдёшь, благо их куча...

x0man
22.04.2008, 02:56
мб лучше так сделать...

Procedure ParseMessage(UIN : Integer; mess : string);
var cmd : string;
param: string;
i : Integer;
begin
if Length(Mess) > 0 then
begin
i := Pos(' ', mess);
if i > 0 then
begin
cmd := Copy(mess, 1, i - 1);
// далее в любом случае можно не высчитывать точно,
// третий параметр в Copy(...)
param := Copy(mess, i + 1, Length(mess));
end
else
begin
cmd := mess;
param := '';
end;

// и понеслась проверять...
if cmd = '!md5' then
begin
////
SendMessageToUIN(UIN, MD5DigestToStr(MD5String(param)));
end
else if cmd = '!anegdot' then
begin
////
// и т.д.
SendMessageToUIN(UIN, 'Бугого');
end;
end;
end;


MD5.PAS типа...
http://www.virustech.org/files/MD5.pas