| 
| 
 | Вопрос # 629/ вопрос открыт / | 
 |  Здравствуйте, уважаемые эксперты! Не могли бы вы объяснить как реализовать программый поиск определенного слова в текстовом файле? Как пример: функция "антимат" у irc бота! Все 10 ругательных слов я ввел в код (т.к. не умею иначе) а хотелось бы для этого использовать отдельный txt файл. Код представленный ниже - реализация функции "антимат" у бота, которая стоит у меня сейчас. Приложение:Переключить в обычный режим procedure TForm1.IdIRC1Message(Sender: TObject; AUser: TIdIRCUser;  AChannel: TIdIRCChannel; Content: String);begin   
|  |   Вопрос задал: Fen-Omen (статус: Посетитель)Вопрос отправлен: 14 июня 2007, 00:15
 Состояние вопроса: открыт, ответов: 1.
 |  Ответ #1. Отвечает эксперт: min@y™ Грузи свой TXT-файл в List: TStringList, чтобы каждое слово занимало 1 строку и было написано ЗАГЛАВНЫМИ буквами. Далее перепиши свой обработчик так (см. приложение).
 Но и этот код надо доработать, т.к. он будет кикать юзеров, написавших сообщение, например, со словом "застрахуй" :). Тут нужно разбить предложение по разделителям, а также ввести все матерные слова, включая их спряжения и склонения. А также слова, в которых некоторые (или все) буквы заменены на похожие латинские.
 
 Короче, тут есть где разгуляться интеллекту. :))))
 Приложение:Переключить в обычный режим procedure TForm1.IdIRC1Message(Sender: TObject;                               AUser: TIdIRCUser;                               AChannel: TIdIRCChannel;                               Content: String);var  UpperContent: string;  Index: Integer;begin   Memo1.Lines.Add('<'+AUser.Nick+'>  ' + Content);  UpperContent:= AnsiUpperCase(Content);    for Index:= 0 to List.Count - 1 do    if Pos(List[Index], UpperContent) <> 0      then begin             idirc1.Kick(form1.Label1.Caption,AUser.Nick,'Learn some manere before join this channel
please!!!');             Exit;           end;end;
|  | Ответ отправил: min@y™ (статус: Доктор наук)Время отправки: 14 июня 2007, 08:58
 Оценка за ответ: 5
 Комментарий к оценке: Отлично, спасибо огромной! ПерестраХуюсь обязательно... |  
 Мини-форум вопросаМини-форум пуст. Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте. |