![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Вот есть вопрос. У меня в программе стоит memo. Мне нужно, чтобы после ввода в это memo текста по русски и нажатии на кнопку проводилась процедура поиска текста в введенном и при наличии какого либо слова (или группы слов) активировалась функция, а при отсутствии этих слов активировалась другая функция. Как это осущиствить? Можете написать по подробнее с примером, ПОЖАЛУЙСТА!
Зараннее благодарен! ![]() |
|
#2
|
|||
|
|||
|
Код:
procedure TForm1.Button1Click(Sender: TObject);
var
S : String;
begin
//замена всех символов перевода строки
S := StringReplace(Memo1.Lines.Text, #13#10, ' ', [rfReplaceAll]);
//поиск
if Pos('<здесь указываем слово или группу слов>', S) > 0 then
//нашли слово (группу слов)
else
//не нашли
end;
//если поиск должен быть не зависимым от регистра букв, то искомые слова пишем
//заглавными буквами и применяем к исходному тексту функцию AnsiUpperCase
//if Pos('<ЗДЕСЬ УКАЗЫВАЕМ СЛОВО ИЛИ ГРУППУ СЛОВ>', AnsiUpperCase(S)) > 0 then Последний раз редактировалось san-46, 22.06.2008 в 09:49. |
|
#3
|
|||
|
|||
|
Спасибо большое! Я даже и не думал, что это так легоко...
У меня еще вопросик. А как можно задать несколько слов? Например процедура, срабатывающая при наличии нужного слова, будет срабатывать при наличии или слова1 или слова2 или слова3...? Я понял, что это делается в строчке: if Pos('СЛОВО1' 'СЛОВО2', AnsiUpperCase(S)) > 0 then но какие знаки ставить между словами? Перепробывал все. Последний раз редактировалось system-q, 22.06.2008 в 13:44. |
|
#4
|
||||
|
||||
|
Код:
if (Pos('СЛОВО1', AnsiUpperCase(S)) > 0) and {в зависимости от условия, можно or} (Pos('СЛОВО2', AnsiUpperCase(S) > 0) ... then |