Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
1

Пожалуйсто помогите с поиском в RichEdit1

13.07.2011, 18:01. Просмотров 1903. Ответов 38
Метки нет (Все метки)

Ребята пожалуйсто помогите, Я в RichEdit1 нахожу строку вот так и заменяю с войми словами
C++
1
2
3
4
5
wchar_t *word = L"<head></head>";
UnicodeString RplcName = StringReplace(RichEdit1->Text,word,
                            "<head>{headers}</head",
                    TReplaceFlags() << rfReplaceAll << rfIgnoreCase);
        RichEdit1->Text = RplcName;
но у меня проблема в тегах({})может содержатся уже строки, мне надо добовыть после <head> слово {headers} и потом уже те строки и </head>
на пример: если ест текст
HTML5
1
2
3
4
<head>
 <link rel="stylesheet" type="text/css" href="css/style.css"/>
 <title>Торнадо</title>
</head>
надо заменить на:
HTML5
1
2
3
4
5
<head>
{headers}
    <link rel="stylesheet" type="text/css" href="css/style.css"/>
 <title>Торнадо</title>
</head>
ето всё дольно происходит в Button1Click спасибо заранее
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.07.2011, 18:01
Ответы с готовыми решениями:

Помогите пожалуйсто!!!
Подскажите плиз у меня на играть стали все значки Paint и не открываются...

Undefined symbol RichEdit1
//--------------------------------------------------------------------------- ...

Function CreateWindowEx() обясните пожалуйсто
Добрго вечера вам! может кто нить подробное обяснит как создать окна? птаюс с...

Обясните пожалуйсто GeMessage();, TranslateMessage(); и DispatchMessage();
Обясните пожалуйсто Оброботка сообщений, &amp;msg как определить етот параметр? и в...

Посчитать количество файлов в папках с поиском
Люди добрые, помогите п-та, мы сами не местные... задача такова: имеются...

38
LK
Заблокирован
15.07.2011, 18:56 21
Programmer.,
пжпжалусто

Извините за мою грамматику © Programmer
0
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
15.07.2011, 21:23  [ТС] 22
LK,
C++
1
2
3
4
5
6
7
8
9
10
UnicodeString headers = "{headers}";
TStringList *list = new TStringList;
list->Text = RichEdit1->Text;
i = list->IndexOf("<head>")+1;
list->Insert(i,headers);
RichEdit1->Clear();
RichEdit1->Text = list->Text;
// не помню, есть ли у RichEdit метод Insert
// тогда вообще лафа - вместо последних двух строчек:
//RichEdit1->Insert(i,headers);

первого задание сделал так

Но второе не выходит, пробовал все ети цикли но не удаляется после <div id="login"> нечего да и до </div> надо
0
LK
Заблокирован
15.07.2011, 23:08 23
1. RichEdit1->Insert(i,headers); - не пробовал ?
2. да и до </div> надо - а с самого начала прописать это в ТЗ воспитание не позволило ?
и пиши подробнее - ошибки, предупреждения и т.п. - у меня билдера нет, потому проверить не могу свое творчество.

Добавлено через 4 минуты
и попробуй для чистоты эксперимента простое удаление всего "под корень" :
C++
1
2
3
4
for (k=0;k<=list->Count-1;k++) {
  list->Delete(k);
  ShowMessage(list->Text);
}
1
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
15.07.2011, 23:54  [ТС] 24
Цитата Сообщение от LK Посмотреть сообщение
1. RichEdit1->Insert(i,headers); - не пробовал ?
1.Пробовал, там просто надо через Lines->Insert, ну разница по моему нету, просто когдо я ето сделал то тогда в ричедите писалос дважди {headers}.

Цитата Сообщение от LK Посмотреть сообщение
2. да и до </div> надо - а с самого начала прописать это в ТЗ воспитание не позволило ?
Что такое T3? Забил об етом сказать,

Цитата Сообщение от LK Посмотреть сообщение
и пиши подробнее - ошибки, предупреждения и т.п. - у меня билдера нет, потому проверить не могу свое творчество.
Ошибки нету вообше, компилирутся в осносном отлично, но просто ну удаляется


Цитата Сообщение от LK Посмотреть сообщение
и попробуй для чистоты эксперимента простое удаление всего "под корень" :
Код C++1
2
3
4 for (k=0;k<=list->Count-1;k++) {
list->Delete(k);
ShowMessage(list->Text);
}
сделал, вот скрини тоже сделал какие месиджи выпали:
0
Миниатюры
Пожалуйсто помогите с поиском в RichEdit1   Пожалуйсто помогите с поиском в RichEdit1   Пожалуйсто помогите с поиском в RichEdit1  

LK
Заблокирован
16.07.2011, 00:58 25
1. ТЗ - твое техническое задание мне ленивому
2. по поводу двойного добавления ты уже исправил, я так понимаю
3. проверь для меня
C++
1
2
3
4
UnicodeString headers = "{headers}";
int line = headers.ToIntDef(0);
int index = SendMessage(RichEdit1->Handle,EM_LINEINDEX,line,0);
RichEdit1->Insert(index,headers);
4.
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
// удаление строк, атака клонов :))))
TStringList *buflist = new TStringList;
// забыл экранировать скобки !, а ты не напомнил :(
UnicodeString startdiv = "<div id=\"login\">";
UnicodeString enddiv = "</div>";
int i;
 
for (i=0;i<RichEdit1->Lines->Count;i++) {
  if (RichEdit1->Lines->Strings[i] != startdiv |
      RichEdit1->Lines->Strings[i] != enddiv) {
    buflist->Add(RichEdit1->Lines->Strings[i]);
    RichEdit1->Lines->Delete(i);
  }
}
ShowMessage(buflist->Text);
1
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 01:36  [ТС] 26
LK,
Цитата Сообщение от LK Посмотреть сообщение
1. ТЗ - твое техническое задание мне ленивому
Буду знать

Цитата Сообщение от LK Посмотреть сообщение
2. по поводу двойного добавления ты уже исправил, я так понимаю
Да ето я исправил

Цитата Сообщение от LK Посмотреть сообщение
3. проверь для меня
Код C++1
2
3
4 UnicodeString headers = "{headers}";
int line = headers.ToIntDef(0);
int index = SendMessage(RichEdit1->Handle,EM_LINEINDEX,line,0);
RichEdit1->Insert(index,headers);
Ето я уже проверял, но в рич едите слово выводило в начале, в нулевом строке

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
TStringList *buflist = new TStringList;
UnicodeString startdiv = "<div id=\"login\">";
UnicodeString enddiv   = "</div>";
int i;
for(i =0;i<RichEdit1->Lines->Count; i++)
 {
  if(RichEdit1->Lines->Strings[i]!=startdiv|RichEdit1->Lines->Strings[i] !=enddiv)
   {
       buflist->Add(RichEdit1->Lines->Strings[i]);
       RichEdit1->Lines->Delete(i);
   }
 }
 ShowMessage(buflist->Text);
Вот сеичас так произошло, у меня с ричедите после <div id="login"> било "Hello" и на новом строке "World" и вот как удалился, и еше 1 момент тут, если мне до <div id="login"> нарисать чтото то удаляются некоторый строки из них тоже
1
Миниатюры
Пожалуйсто помогите с поиском в RichEdit1  
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 02:12  [ТС] 27
что мне сделать а?
1
LK
Заблокирован
16.07.2011, 02:15 28
1.
C++
1
2
  if (RichEdit1->Lines->Strings[i] != startdiv ||
      RichEdit1->Lines->Strings[i] != enddiv) {
2. я думал, тебе только эти строки оставить надо, тогда смотри, где вычислялись индексы
C++
1
2
i = list->IndexOf("<div id="login">");
j = list->IndexOf("</div>");
и указывай диапазон для for, или в
C++
1
2
  if (RichEdit1->Lines->Strings[i] != startdiv ||
      RichEdit1->Lines->Strings[i] != enddiv) {
добавляй строки, которые нужно оставить.
0
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 02:58  [ТС] 29
LK,
Вот так?

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
TStringList *buflist = new TStringList;
UnicodeString startdiv = "<div id=\"login\">";
UnicodeString enddiv   = "</div>";
buflist->Text=RichEdit1->Text;
int i,j;
i=buflist->IndexOf(startdiv);
j=buflist->IndexOf(enddiv);
for(i;i<j; i++)
 {
  if(RichEdit1->Lines->Strings[i]!=startdiv||RichEdit1->Lines->Strings[i] !=enddiv)
   {
       buflist->Add(RichEdit1->Lines->Strings[i]);
       RichEdit1->Lines->Delete(i);
   }
 }
 ShowMessage(buflist->Text);
так тоже фигня выходит... удаляется сперва палавина текста а потом уже второя половина
1
LK
Заблокирован
16.07.2011, 03:01 30
поменяй || на &&
1
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 04:22  [ТС] 31
LK,
Удаляется как нвдо просто надо сомостоятеслно нажат на кнопку раз 2-3 чтоб удалился вес содержимое, но у нас прогрес, <div id="login"> и </div> остаются не тронутым!
1
LK
Заблокирован
16.07.2011, 04:31 32
помести нажатие кнопки в цикл при нажатии другой кнопки:
C++
1
for(int i=0;i=3; i++) {Button1->Click();}


днем посмотрю
1
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 04:38  [ТС] 33
LK,
Цитата Сообщение от LK Посмотреть сообщение
помести нажатие кнопки в цикл :
Код C++1 for(int i=0;i=3; i++) {Button1->Click();}
Азвирел совсем прог из за етого


Ок до завтра
0
LK
Заблокирован
16.07.2011, 04:50 34
а попробуй-ка ему вместо for сделать
C++
1
2
3
4
5
do {
  buflist->Add(RichEdit1->Lines->Strings[i]);
  RichEdit1->Lines->Delete(i);
} while (RichEdit1->Lines->Strings[i]!=startdiv &&
         RichEdit1->Lines->Strings[i] !=enddiv)
1
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 05:05  [ТС] 35
LK,
Цитата Сообщение от LK Посмотреть сообщение
do {
buflist->Add(RichEdit1->Lines->Strings[i]);
RichEdit1->Lines->Delete(i);
} while (RichEdit1->Lines->Strings[i]!=startdiv &&
RichEdit1->Lines->Strings[i] !=enddiv)
Удаляется всё, толко </div> остается
0
LK
Заблокирован
16.07.2011, 05:13 36
я подозревал
0
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 05:16  [ТС] 37
LK,
Ок до завтра а то шас свитлеет, завтра прадолжем спастбо тя
1
LK
Заблокирован
16.07.2011, 05:57 38
пока , и я уже скачал билдер

Добавлено через 34 минуты
C++
1
2
3
4
5
6
7
8
for (i;i<j;i++) {
  do {
    if (RichEdit1->Lines->Strings[i]!=startdiv) {
      buflist->Add(RichEdit1->Lines->Strings[i]);
      RichEdit1->Lines->Delete(i);
    }
  } while (RichEdit1->Lines->Strings[i]!=enddiv)
}
0
Programmer.
Прогер
631 / 262 / 15
Регистрация: 17.11.2010
Сообщений: 1,371
Записей в блоге: 2
16.07.2011, 12:48  [ТС] 39
LK,
Цитата Сообщение от LK Посмотреть сообщение
пока , и я уже скачал билдер
уже легче будет
C++
1
2
3
4
5
6
7
8
for (i;i<j;i++) {
  do {
    if (RichEdit1->Lines->Strings[i]!=startdiv) {
      buflist->Add(RichEdit1->Lines->Strings[i]);
      RichEdit1->Lines->Delete(i);
    }
  } while (RichEdit1->Lines->Strings[i]!=enddiv);
}
Зависает программа
0
16.07.2011, 12:48
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.07.2011, 12:48

Пожалуйсто обясниту разницу на пример между TImage и TDBImage и т.д между обичнами компонентами и DB компонентами
Здарова люди ;) Пожалуйсто обясниту разницу на пример между TImage и TDBImage...

Как правильно пользоваться поиском по компонентам ->FindComponent
В гугле в основном выбивает результаты по делфи, а там где есть про это по...

Дайте пожалуйсто книгу
Форум мне нужен помош, знаю чтоо могу работать с базамы без MySql и т.д, но...


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

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

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