Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 18.05.2014, 19:01   #1
Silverstone
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 75
По умолчанию Поиск в Memo

Memo заполняется различными словами:
Цитата:
Слово 1
Слово 2
Слово 3
Нужно найти слово, на которое есть какое-то зарезервированное действие.
Вопрос в том, как именно запрограммировать псевдокод такого вида:
Цитата:
if ("Слово Х" in Memo1) then do begin Действие
При этом после каждого клика на Button список слов в Memo обновляется.
По сути, это чат-бот, который отвечает шаблонными фразами на различные найденные маски-слов.
Silverstone вне форума Ответить с цитированием
Старый 18.05.2014, 19:06   #2
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

Код:
if Pos('Слово Х', Memo1.text) > 0 then
ZuBy вне форума Ответить с цитированием
Старый 18.05.2014, 19:12   #3
Silverstone
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 75
По умолчанию

Цитата:
Сообщение от ZuBy Посмотреть сообщение
Код:
if Pos('Слово Х', Memo1.text) > 0 then
Т.е в итоге запилить несколько конструкций if и приписывать каждой свое действие?
Silverstone вне форума Ответить с цитированием
Старый 18.05.2014, 19:13   #4
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
if Memo1.Lines.IndexOf('Слово 1')<>-1 then Действуй
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2014, 21:28   #5
Silverstone
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 75
По умолчанию

А если мне необходимо реализовать такой вариант.
Через pos ищу слово в Memo. Некоторые слова уже заданы в массиве.
Т.е массив такой, например:
Цитата:
const mas : array[0..1] of String = ('Слово1', 'Слово2');
И искать нужно как-то так:
Цитата:
if pos(mas[i], Memo2.Lines.Text)
Что вместо mas[i] тогда написать нужно?
Silverstone вне форума Ответить с цитированием
Старый 18.05.2014, 21:57   #6
ZuBy
Участник клуба
 
Аватар для ZuBy
 
Регистрация: 29.09.2008
Сообщений: 1,234
По умолчанию

что-то типа этого?
Код:
for i := low(mas) to high(mas) do
begin
  if pos(mas[i], Memo2.Lines.Text) >0 then
end;
ZuBy вне форума Ответить с цитированием
Старый 18.05.2014, 21:59   #7
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

В цикле тогда по массиву проход делай.
I'm learning to live...
Stilet вне форума Ответить с цитированием
Старый 18.05.2014, 22:04   #8
Silverstone
Пользователь
 
Регистрация: 13.12.2011
Сообщений: 75
По умолчанию

Да, это подходит. Спасибо.
Silverstone вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в Memo Jadson БД в Delphi 2 14.05.2012 10:16
Поиск в MEMO dimafe6 Общие вопросы Delphi 9 09.02.2010 22:03
Поиск по Memo photozaz Общие вопросы Delphi 5 25.05.2008 17:55
Поиск в Memo Terran Общие вопросы Delphi 4 07.05.2008 23:33