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

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

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль

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

Ответ
 
Опции темы Поиск в этой теме
Старый 11.06.2011, 18:15   #1
amigo_28
Новичок
Джуниор
 
Регистрация: 11.06.2011
Сообщений: 1
По умолчанию СТРОКИ

Вот часть программы, которая ищет и выделяет слово.
Проблема в том, что она выделяет первое встретившееся слово.
Как её переделать так, чтобы выделяло все слова, найденные в Memo1?

Код:
procedure TForm1.btn1Click(Sender: TObject);
var
  Find:string; // Искомая строка
  i:integer;   // Счетчик для цикла
begin
  for i:=0 to memo1.Lines.Count-1 do
  KMP(Memo1.Lines[i],Edit1.Text);
  find:=Edit1.Text; // Записываем в find текст из Edit
  For i:=0 to Memo1.Lines.Count-1 do     // Запускаем цикл поиска строки
  If Pos(FIND, Memo1.Lines.Text)<>0 then
    Begin
      Memo1.SetFocus;                                //
      Memo1.SelStart:=Pos(FIND,Memo1.Lines.Text)-1;  //  Выделение найденного слова
      Memo1.SelLength:=Length(FIND);                 // 
    end;
end;

Последний раз редактировалось Stilet; 11.06.2011 в 18:21.
amigo_28 вне форума Ответить с цитированием
Старый 11.06.2011, 18:23   #2
Stilet
Белик Виталий :)
Старожил
 
Аватар для Stilet
 
Регистрация: 23.07.2007
Сообщений: 57,097
По умолчанию

Код:
procedure TForm1.btn1Click(Sender: TObject);
var
  Find:string; // Искомая строка
  i:integer;   // Счетчик для цикла
begin
  for i:=0 to memo1.Lines.Count-1 do   KMP(Memo1.Lines[i],Edit1.Text);
  find:=Edit1.Text; // Записываем в find текст из Edit
  For i:=1 to length(Memo1.Lines.Text) do     // Запускаем цикл поиска строки
  If copy(Memo1.Lines.Text,i,length(find))=FIND then
    Begin
      Memo1.SetFocus;                                //
      Memo1.SelStart:=i;  //  Выделение найденного слова
      Memo1.SelLength:=Length(FIND);                 // 
    end;
end;
Сойдет?
I'm learning to live...
Stilet вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сделать в гриде строки выше, чтобы не растягивать строки до бесконечности kris__tina БД в Delphi 1 09.06.2011 15:31
Даны строки S и S0. Удалить из строки S все подстроки, совпадающие с S0 . Если совпадающих подстрок нет, Шпунюся Помощь студентам 1 16.12.2010 21:02
Создание пустой строки и копирование в неё содержимое предыдущей строки Gvaridos Microsoft Office Excel 2 29.10.2010 13:33
Определять максимальную длину той части строки s, которая не содержит символы из строки s1. Александе еть я Общие вопросы C/C++ 5 13.04.2010 20:54
Перенести символа с начала строки в место перед запятой этой же строки. Zhiltsov Microsoft Office Excel 4 05.06.2009 13:10