Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
2 / 2 / 0
Регистрация: 09.01.2013
Сообщений: 134

Поиск в RichEdit

09.01.2013, 00:49. Показов 2768. Ответов 3
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здраствуйте!!!
Вопрос в следущем:
Хочу с одного RichEdit3 сверять текст с RichEdit2 при условии что он находиттса между
Если
Текст...
.........
.....
Тогда

Казалось просто но почемуто не получаетса. Наверно причина в том что все начинаєтса с новой линии.

Вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TSearchTypes Stype;
 Stype=Stype<< stMatchCase;
String Text=(AnsiString("Если:")+ AnsiString(RichEdit3->Text)+AnsiString("Тогда:"));
 int start=0,stop=0;
 
 for(;start>=0;)
 {
 start = RichEdit2->FindText(Text,start+stop,RichEdit2->Text.Length(),Stype);
 stop  = Text.Length();
 
 RichEdit2->SelStart=start;
 RichEdit2->SelLength=stop;
 
   RichEdit2->SelAttributes->Style<<fsBold;
 RichEdit2->SelAttributes->Color=clBlue;
 }
Помогите пожалуйста!!!!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
09.01.2013, 00:49
Ответы с готовыми решениями:

Поиск в RichEdit
Здравствуйте! Нужна помощь вот в чем! Организовал поиск по RichEdit'у с выделением все четко! на форуме тем много! ...

Поиск слов в RichEdit
int found = 0; found =Form1-&gt;RichEdit1-&gt;Text.Pos(Form2-&gt;Edit1-&gt;Text); if (found &gt; 0) { ...

RichEdit поиск в строке
Поиск в строке RichEdit Есть три RichEdit1,..2,..3. В первом RichEdit1 считывает, в третьем находит похожий, выводит во второй. С...

3
 Аватар для BRcr
4043 / 2333 / 292
Регистрация: 03.02.2011
Сообщений: 5,066
Записей в блоге: 10
09.01.2013, 00:58
Цитата Сообщение от Best777 Посмотреть сообщение
Хочу с одного RichEdit3 сверять текст с RichEdit2 при условии что он находиттса между
Сверять? Это как? Судя по коду, твоя цель - жирный шрифт синего цвета...
0
2 / 2 / 0
Регистрация: 09.01.2013
Сообщений: 134
09.01.2013, 01:07  [ТС]
Извините что не четко поставил вопрос.

Правельнее сказать совпадает. При нажатии на кнопку есть ли текст с RichEdit3 в RichEdit2 и он написан между
словами "Если" и "Тогда" у формате:

текст
Если
текст
текст
Тогда
текст

Добавлено через 1 минуту
а задания я просто упрости и потому закрашиваю найденное!!
0
Эксперт С++
 Аватар для Avazart
8488 / 6155 / 615
Регистрация: 10.12.2010
Сообщений: 28,683
Записей в блоге: 30
09.01.2013, 01:42
DescriptionThis example requires a TRichEdit, a TButton, and a TFindDialog. Clicking the button displays a Find Dialog to the right of the edit control. Filling in the "Find what" text and pressing the Find Next button selects the first matching string in the Rich Edit control that follows the previous selection. Notice that the "Match whole word only" and "Match case" work.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
//-------------------------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  FindDialog1->Position = Point(RichEdit1->Left + RichEdit1->Width, RichEdit1->Top);
  FindDialog1->Execute();
}
//------------------------------------------------------------------------------------------- 
void __fastcall TForm1::FindDialog1Find(TObject *Sender)
{
  int FoundAt, StartPos, ToEnd;
  TSearchTypes mySearchTypes = TSearchTypes();
  // Begin the search after the current selection,
  // if there is one.
  // Otherwise, begin at the start of the text.
  if (FindDialog1->Options.Contains(frMatchCase))
        mySearchTypes << stMatchCase;
  if (FindDialog1->Options.Contains(frWholeWord))
        mySearchTypes << stWholeWord;
  if (RichEdit1->SelLength)
        StartPos = RichEdit1->SelStart + RichEdit1->SelLength;
  else
        StartPos = 0;
  // ToEnd is the length from StartPos
  // to the end of the text in the rich edit control.
  ToEnd = RichEdit1->Text.Length() - StartPos;
  FoundAt = RichEdit1->FindText(FindDialog1->FindText, StartPos, ToEnd, mySearchTypes);
  if (FoundAt != -1)
  {
        RichEdit1->SetFocus();
        RichEdit1->SelStart = FoundAt;
        RichEdit1->SelLength = FindDialog1->FindText.Length();
  }
  else Beep();
}
//------------------------------------------------------------------------------------------- 
__fastcall TForm1::TForm1(TComponent* Owner)
  : TForm(Owner)
{
  RichEdit1->PlainText = False;
  RichEdit1->Lines->LoadFromFile("../Overview.RTF");  // Starts in Debug.
  RichEdit1->ScrollBars = ssVertical;
}
Полезно иногда в справку Builder-а заглядывать
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
09.01.2013, 01:42
Помогаю со студенческими работами здесь

Поиск слова в RichEdit
Как найти слово, например введенное в Edit? спаисибо

RichEdit поиск и замена текста
Доброго времени суток. Мне нужно действовать по такому алгоритму: Если в RichEdit1 содержится текст :), то я заменяю этот текст на...

RichEdit и FindText, поиск текста в обратном направлении
Как искать текст вперед я разобрался: if...

Поиск слова в richedit
Здравствуйте ! Помогите пожалуйста с программой, никак не могу реализовать следующее: ввести слово в edit, далее поиск введённого слова в...

Поиск и сравнение слов в RichEdit
На форме лежит RichEdit, в котором: Bla-bla-bla Bla-bla-bla Bla-bla-bla Start Br1.width = 17 Br1.Height = 2...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Новые блоги и статьи
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
Контроль уникальности заводского номера - вариант №2
Maks 24.03.2026
В отличие от предыдущего варианта добавлено прерывание циклов, также добавлены новые переменные для сохранения контекста ошибки перед прерыванием цикла: Процедура ПередЗаписью(Отказ, РежимЗаписи,. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
Жизнь в неопределённости
kumehtar 23.03.2026
Жизнь — это постоянное существование в неопределённости. Например, даже если у тебя есть список дел, невозможно дойти до точки, где всё окончательно завершено и больше ничего не осталось. В принципе,. . .
Модель здравоСохранения: работники работают быстрее после её введения.
anaschu 23.03.2026
geJalZw1fLo Корпорация до введения программа здравоохранения имела много невыполненных работниками заданий, после введения программы количество заданий выросло. Но на выплатах по больничным это. . .
Контроль уникальности заводского номера - вариант №1
Maks 23.03.2026
Алгоритм контроля уникальности заводского (или серийного) номера на примере документа выдачи шин для спецтехники с табличной частью в КА2. Данные берутся из регистра сведений, по которому настроено. . .
Хочу заставить корпорации вкладываться в здоровье сотрудников: делаю мат модель здравосохранения
anaschu 22.03.2026
e7EYtONaj8Y Z4Tv2zpXVVo https:/ / github. com/ shumilovas/ med2. git
Программный отбор элементов справочника по группе
Maks 22.03.2026
Установка программного отбора элементов справочника "Номенклатура" из модуля формы документа в КА2. В качестве фильтра для отбора справочника служит группа номенклатуры. Отбор по наименованию. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru