|
Вопрос # 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
Комментарий к оценке: Отлично, спасибо огромной! ПерестраХуюсь обязательно...
|
Мини-форум вопроса
Мини-форум пуст.
Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.
|