Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #1  
Старый 22.06.2008, 00:16
system-q system-q вне форума
Прохожий
 
Регистрация: 22.06.2008
Сообщения: 2
Репутация: 10
Вопрос Поиск текста в Memo

Вот есть вопрос. У меня в программе стоит memo. Мне нужно, чтобы после ввода в это memo текста по русски и нажатии на кнопку проводилась процедура поиска текста в введенном и при наличии какого либо слова (или группы слов) активировалась функция, а при отсутствии этих слов активировалась другая функция. Как это осущиствить? Можете написать по подробнее с примером, ПОЖАЛУЙСТА!
Зараннее благодарен!
Ответить с цитированием
  #2  
Старый 22.06.2008, 09:17
san-46 san-46 вне форума
Активный
 
Регистрация: 25.04.2008
Сообщения: 383
Репутация: 33
По умолчанию

Код:
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  
Старый 22.06.2008, 13:10
system-q system-q вне форума
Прохожий
 
Регистрация: 22.06.2008
Сообщения: 2
Репутация: 10
По умолчанию

Спасибо большое! Я даже и не думал, что это так легоко...

У меня еще вопросик. А как можно задать несколько слов? Например процедура, срабатывающая при наличии нужного слова, будет срабатывать при наличии или слова1 или слова2 или слова3...?

Я понял, что это делается в строчке:
if Pos('СЛОВО1' 'СЛОВО2', AnsiUpperCase(S)) > 0 then
но какие знаки ставить между словами? Перепробывал все.

Последний раз редактировалось system-q, 22.06.2008 в 13:44.
Ответить с цитированием
  #4  
Старый 22.06.2008, 18:34
Аватар для The Shadow
The Shadow The Shadow вне форума
Продвинутый
 
Регистрация: 11.06.2007
Адрес: Уфа, Россия
Сообщения: 793
Репутация: 35
По умолчанию

Код:
if (Pos('СЛОВО1', AnsiUpperCase(S)) > 0) and {в зависимости от условия, можно or} (Pos('СЛОВО2', AnsiUpperCase(S) > 0) ... then
__________________
Что делать, когда сломался комп:
1. Если вы юзер - делать ноги.
2. Если ремонтник - делать деньги.
3. Если вы программист - делать вид, что так было задумано.
Ответить с цитированием
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 19:07.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025