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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.04.2019, 03:55   #1
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию поиск в memo найти дальше

здрастуйте ношел вот такой код вроде бы работает ищет что надо вот только находит только один раз как сделать так чтобы искал дальше?

Код:
var find:string; i:integer;
begin
find:=ansilowercase(combobox1.text);
if pos(ansilowercase (find),ansilowercase(memo1.lines.text))<>0 then
memo1.setfocus();
memo1.SelStart:=pos(ansilowercase(find),ansilowercase (memo1.lines.text))-1;
memo1.sellength:=length(find);
falsebegin вне форума Ответить с цитированием
Старый 18.04.2019, 08:00   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

PosEx
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.04.2019, 08:18   #3
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию

может быть поделишься кодом ?
falsebegin вне форума Ответить с цитированием
Старый 18.04.2019, 09:49   #4
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от falsebegin Посмотреть сообщение
может быть поделишься кодом ?
а что там делиться то:
Код:
var find:string; i,k:integer;
begin
   find:=ansilowercase(combobox1.text);
   k:=memo1.SelStart+1;
   i := PosEx(find, ansilowercase(memo1.lines.text),k);
   if  i>0 then  begin
	memo1.setfocus();
	memo1.SelStart:=i-1;
	memo1.sellength:=length(find);
   end;
....
p.s. не проверял
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2019, 12:36   #5
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию

проверил тоже самое ищет только раз
falsebegin вне форума Ответить с цитированием
Старый 18.04.2019, 12:39   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
Сообщение от falsebegin Посмотреть сообщение
проверил тоже самое ищет только раз
Как себе представляешь ищет НЕ только раз? Что должно получиться в результате этого НЕ?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 18.04.2019, 12:43   #7
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию

что то я заблудился не могу дойти до дома
falsebegin вне форума Ответить с цитированием
Старый 18.04.2019, 13:27   #8
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
к себе представляешь ищет НЕ только раз? Что должно получиться в результате этого НЕ?
Это очень хороший вопрос. Вот на него нужно в первую очередь ответить.

и тогда можно искать дорогу домой.

p.s. я писал пример кода, который (по моей задумке) должен найти и выделить фрагмент в мемо, при повторном нажатии найти и выделить следующий фрагмент и т.д.
А как он работает?
Serge_Bliznykov вне форума Ответить с цитированием
Старый 18.04.2019, 14:00   #9
falsebegin
Форумчанин
 
Регистрация: 23.11.2016
Сообщений: 100
По умолчанию

выделяет только первую найденную слову привет только один раз дальше не выделяет а в мемо есть три слова привет

Последний раз редактировалось falsebegin; 18.04.2019 в 14:07.
falsebegin вне форума Ответить с цитированием
Старый 18.04.2019, 14:08   #10
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Код:
k:=memo1.SelStart+1;
k:=memo1.SelStart+1+Ord(memo1.SelLength>0);
а то по-новой ранее найденное будет находить
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 18.04.2019 в 14:13.
Аватар вне форума Ответить с цитированием
Ответ


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

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

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Поиск в Memo Silverstone Общие вопросы Delphi 7 18.05.2014 22:04
Паскаль найти МИНИМАЛЬНОЕ расстояние между 3 точками, как дальше? Вида)) Паскаль, Turbo Pascal, PascalABC.NET 1 21.12.2012 01:51
поиск в Memo Yokka Общие вопросы C/C++ 1 24.05.2010 16:50
Поиск в MEMO dimafe6 Общие вопросы Delphi 9 09.02.2010 22:03
Поиск - дальше, назад в TTreeView RIO Общие вопросы Delphi 10 14.12.2009 00:22