Форум программистов, компьютерный форум, киберфорум
Наши страницы

C++ Builder

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 49, средняя оценка - 4.73
ruslan_smirnov
1 / 1 / 0
Регистрация: 01.03.2011
Сообщений: 89
#1

Поиск слова в RichEdit - C++ Builder

19.05.2011, 03:04. Просмотров 6457. Ответов 41
Метки нет (Все метки)

Как найти слово, например введенное в Edit?
спаисибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
19.05.2011, 03:04
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Поиск слова в RichEdit (C++ Builder):

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

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

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

поиск слов в RichEdit - C++ Builder
int found = 0; found =Form1->RichEdit1->Text.Pos(Form2->Edit1->Text); if (found > 0) { ...

Цветные слова при нажатии на кнопку (RichEdit) - C++ Builder
Не могу розобратса как добавти при нажатии на кнопку слово (например красного цвета). Добавлять строки я знаю как а вот как цветной текст...

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

41
LK
Заблокирован
06.03.2012, 03:52 #31
mixe, например так:
C++
1
AnsiString word = Edit1->Text;
0
mixe
7 / 7 / 1
Регистрация: 14.10.2011
Сообщений: 118
06.03.2012, 04:08 #32
да оч важно. я с помощью FindDialog сделал, нормально но хочеться сделать, что бы программа была на украинском или на других языках , не важно. и текст выделялся каким то другим цветом
0
LK
Заблокирован
06.03.2012, 04:14 #33
Цитата Сообщение от mixe Посмотреть сообщение
1. хочеться сделать, что бы программа была на украинском или на других языках
2. текст выделялся каким то другим цветом
1. Имеется ввиду интерфес программы, или что?
3. Выделить красным:
C++
1
RichEdit1->SelAttributes->Color=clRed;
1
mixe
7 / 7 / 1
Регистрация: 14.10.2011
Сообщений: 118
06.03.2012, 04:16 #34
пишет ошибку
0
LK
Заблокирован
06.03.2012, 04:16 #35
Пишите ошибку сюды.
0
mixe
7 / 7 / 1
Регистрация: 14.10.2011
Сообщений: 118
06.03.2012, 04:17 #36
C++
1
2
3
4
5
6
7
8
9
10
11
12
AnsiString text=RichEdit->Text;
AnsiString word = "int";
  int int_pos;
  AnsiString word = Edit1->Text;
 //
  while(text.Pos(word)) {
    int_pos = text.Pos(word);
    RichEdit->SelStart=int_pos-1;
    RichEdit->SelLength=word.Length();
    RichEdit->SelAttributes->Color=clRed;
    text[int_pos]='0';
 }
или я не так сделал, что скорее всего
0
LK
Заблокирован
06.03.2012, 04:20 #37
Для начала закомментируйте эту строку так:
C++
1
// AnsiString word = "int";
1
mixe
7 / 7 / 1
Регистрация: 14.10.2011
Сообщений: 118
06.03.2012, 04:30 #38
о точно, спасибо , а как убрть выделение при клике по нем иил как нибудь
0
LK
Заблокирован
06.03.2012, 04:33 #39
C++
1
2
RichEdit1->SelStart = -1;
RichEdit1->SelAttributes->Assign(RichEdit1->DefAttributes);
1
mixe
7 / 7 / 1
Регистрация: 14.10.2011
Сообщений: 118
06.03.2012, 04:55 #40
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  int int_pos;
  AnsiString word = Edit1->Text;
 //
  while(text.Pos(word)) {
    int_pos = text.Pos(word);
    RichEdit->SelStart=int_pos-1;
    RichEdit->SelLength=word.Length();
    RichEdit->SelAttributes->Color=clRed;
    text[int_pos]='0';
    RichEdit->SelStart = -1;
RichEdit->SelAttributes->Assign(RichEdit->DefAttributes);
 
 
 }
так должно быть . последняя ваша пощь по этому вопросу и я утихаю. Простите делетанта за беспокойство

Добавлено через 13 минут
перепробывал, все, что думал не получеться(((((
0
LK
Заблокирован
06.03.2012, 05:14 #41
mixe, что именно не получается ? мой угадыватель мыслей на расстоянии отключен за злостную неуплату, увы .

Добавлено через 1 минуту
Если вы хотите убрать выделение слова красным, следует повторно выделить это слово и назначить ему
C++
1
DefAttributes
Добавлено через 3 минуты
или так:
C++
1
2
3
4
5
6
    if (RichEdit->SelAttributes->Color==clRed) {
      text[int_pos]='0';
    }
    else {
      RichEdit->SelAttributes->Assign(RichEdit->DefAttributes);
    }
0
mixe
7 / 7 / 1
Регистрация: 14.10.2011
Сообщений: 118
06.03.2012, 08:58 #42
Выделять получаеться, все нормально, но мне нужно убирать это выделение посли нахождения нужного слова или фразы

Добавлено через 8 минут
я и так попробовал
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
AnsiString text=RichEdit->Text;
//AnsiString word = "int";
AnsiString word = Edit1->Text;
//
while(text.Pos(word)) {
  int_pos = text.Pos(word);
  RichEdit->SelStart=int_pos-1;
  RichEdit->SelLength=word.Length();
  RichEdit->SelAttributes->Color=clRed;
  text[int_pos]='0';
  RichEdit->SelStart = int_pos -1;
  RichEdit->SelAttributes->Assign(RichEdit->DefAttributes);
  if (RichEdit->SelAttributes->Color==clRed) {
    text[int_pos]='0';
  }
  else {
    RichEdit->SelAttributes->Assign(RichEdit->DefAttributes);
  }
}
результата нет
и так
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
AnsiString text=RichEdit->Text;
//AnsiString word = "int";
AnsiString word = Edit1->Text;
//
while(text.Pos(word)) {
  int_pos = text.Pos(word);
  RichEdit->SelStart=int_pos-1;
  RichEdit->SelLength=word.Length();
  RichEdit->SelAttributes->Color=clRed;
  text[int_pos]='0';
  RichEdit->SelStart = int_pos -1;
  if (RichEdit->SelAttributes->Color==clRed) {
    text[int_pos]='0';
  }
  else {
    RichEdit->SelAttributes->Assign(RichEdit->DefAttributes);
  }
 }
это вобще зависает, так что я не знаю

Добавлено через 1 минуту
нет, вот так виснет
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
AnsiString text=RichEdit->Text;
//AnsiString word = "int";
AnsiString word = Edit1->Text;
//
while(text.Pos(word)) {
  int_pos = text.Pos(word);
  RichEdit->SelStart=int_pos-1;
  RichEdit->SelLength=word.Length();
  if (RichEdit->SelAttributes->Color==clRed) {
     text[int_pos]='0';
  }
  else {
    RichEdit->SelAttributes->Assign(RichEdit->DefAttributes);
  }
}
Добавлено через 1 минуту
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
#include <vcl.h>
#pragma hdrstop
 
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
int int_pos;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  AnsiString text=RichEdit->Text;
  //AnsiString word = "int";
  AnsiString word = Edit1->Text;
  //
  while(text.Pos(word)) {
    int_pos = text.Pos(word);
    RichEdit->SelStart=int_pos-1;
    RichEdit->SelLength=word.Length();
    if (RichEdit->SelAttributes->Color==clRed) {
      text[int_pos]='0';
    }
    else {
      RichEdit->SelAttributes->Assign(RichEdit->DefAttributes);
    }
  }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::FormCreate(TObject *Sender)
{
  RichEdit->HideSelection = false;
}
весь код
0
06.03.2012, 08:58
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
06.03.2012, 08:58
Привет! Вот еще темы с ответами:

Как убрать из RichEdit все слова нечетной длины? - C++ Builder
Есть два ричэдита.в один я считываю с файла, во второй ричэдит мне нужно записать то что я считал, без слов непарной длины. void...

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

Из RichEdit в RichEdit без потери форматирования - C++ Builder
Есть RichEdit1 с форматированным текстом(цвет, стиль и тп.) нужно передать этот текст в переменную а затем в RichEdit2 чтобы при вставке в...

Поиск слова - C++ Builder
Как найти мемо отдельное слово ,есть например строка &quot;Просмотр книги&quot; как сделать что б если нашлось слово &quot;Просмотр&quot; то вывелось...


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

Или воспользуйтесь поиском по форуму:
42
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru