Форум программистов, компьютерный форум, киберфорум
Наши страницы
C++ Builder
Войти
Регистрация
Восстановить пароль
 
дно21
1 / 1 / 2
Регистрация: 15.08.2017
Сообщений: 81
#1

Удалить заданный текст из 5 ++ строки Memo - C++ Builder

27.11.2017, 01:54. Просмотров 165. Ответов 5
Метки нет (Все метки)

Доброго времени суток уважаемые программисты!
Появилась необходимость написать функцию, которая удаляет указанный из Edit текст из заданных строк.
Постараюсь показать все наглядно
Есть строки вида:

1. мама мыла раму
2. мама мыла гошу
3. гоша ел кашу в Карамба
4. Елка растет в лесу
5. Купи слона за пол цены
6. Карамба сказал пират
7. Что это за слово такое Карамба
8. Сказал Карамба и убежал

В Edit пишу слово "Карамба" и нажимаю кнопку, в результате работы функции должно выйти:

1. мама мыла раму
2. мама мыла гошу
3. гоша ел кашу в Карамба
4. Елка растет в лесу
5. Купи слона за пол цены
6. сказал пират
7. Что это за слово такое
8. Сказал и убежал

удалились все вхождения слова "карамба" в строках 6, 7, 8 .....
строки: 1,2,3,4 и 5 должны остаться не тронутыми

Пытался накалякать сам:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
for(int i = 5; i < AdvMemo1->Lines->Count ; i ++)
         {
       String a =AdvMemo1->Lines->Strings[i]+" ";
        {
 if (a.Pos(Edit6->Text)!=0)  //     удаление строки со словом
  {
 
 
 AdvMemo1->Lines->Text.Delete(a);
 
 
 i--;
 
 
 
 
   }
        }
         }
Но так и не вышло норм сделать, всю строку с вхождением удалить вышло, но не слово))
http://www.cyberforum.ru/cpp-builder/thread1832047.html
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
27.11.2017, 01:54
Я подобрал для вас темы с готовыми решениями и ответами на вопрос Удалить заданный текст из 5 ++ строки Memo (C++ Builder):

Найти и удалить пустые строки в Memo
Искал везде, сам думал, но никак не получается... Нужно найти и удалить...

Kак добавить текст в конец строки поля memo
Доброго времени суток. Помогите пожалуйста. Нужно сделать программу которая...

Текст из Memo
В программе есть интерпретатор. Программа для интерпретатора пишется в Memo....

Текст в Memo
Как сделать многострочную строку для Memo то есть String s = &quot;текст&quot;;...

Вывести заданный текст в файл
Добрый день. Помогите пожалуйста с выводом текста. Как считать помню , а вывод...

5
Sasha
4918 / 2383 / 529
Регистрация: 05.06.2008
Сообщений: 7,465
Записей в блоге: 3
27.11.2017, 03:21 #2
C++
1
2
3
4
void __fastcall TForm1::Button1Click(TObject *Sender)
{
Memo2->Text = StringReplace( Memo1->Text, "Карамба", "", TReplaceFlags( ) << rfReplaceAll );
}
0
дно21
1 / 1 / 2
Регистрация: 15.08.2017
Сообщений: 81
27.11.2017, 03:22  [ТС] #3
не то, этот код везде удалит
0
Sasha
4918 / 2383 / 529
Регистрация: 05.06.2008
Сообщений: 7,465
Записей в блоге: 3
27.11.2017, 04:15 #4
C++
1
2
3
4
5
6
7
8
9
10
11
void __fastcall TForm1::Button1Click(TObject *Sender)
{
  for(int i = 5; i < Memo1->Lines->Count; i++)
 {
   if(Memo1->Lines->Strings[i].Pos(Edit1->Text))
   {
     Memo1->Lines->Strings[i] = Memo1->Lines->Strings[i].Delete(Memo1->Lines->Strings[i].Pos(Edit1->Text)-1,Edit1->Text.Length());
   }
 }
 
}
1
volvo
Супер-модератор
Эксперт Pascal/DelphiАвтор FAQ
25613 / 17166 / 6826
Регистрация: 22.10.2011
Сообщений: 30,362
Записей в блоге: 6
27.11.2017, 10:43 #5
Лучший ответ Сообщение было отмечено дно21 как решение

Решение

А этот код удалит не все, если в строке будет более чем по одному вхождению строк. Поэтому объединяем два кода:
C++
1
2
3
4
    for (int i = 5; i < Memo1->Lines->Count; i++)
    {
        Memo1->Lines->Strings[i] = StringReplace(Memo1->Lines->Strings[i], Edit1->Text, "", TReplaceFlags() << rfReplaceAll);
    }
3
дно21
1 / 1 / 2
Регистрация: 15.08.2017
Сообщений: 81
27.11.2017, 12:34  [ТС] #6
Как всегда вариант от volvo работает и работает хорошо!
Огромное спасибо!
0
27.11.2017, 12:34
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
27.11.2017, 12:34
Привет! Вот еще темы с решениями:

Получить текст из memo
Имеются 2 файла *.txt которые я вывожу в memo1 и memo2 с помощью opendiaolg. По...

Вставить текст в Memo
Всем доброго времени суток. Мне нужно чтоб в Memo в то место где стоит курсор...

Перепечатать текст из Memo
Привет, как можно реализовать следующую задачу: Вставленный текст в Memo нужно...

Memo - разноцветный текст
Здравствуйте, подскажите как можно разукрасить текст в memo1. Нужно что бы...


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

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

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