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

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

Вернуться   Форум программистов > Delphi программирование > Общие вопросы Delphi
Регистрация

Восстановить пароль
Повторная активизация e-mail

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.03.2015, 20:27   #1
LongMonster
 
Регистрация: 14.03.2015
Сообщений: 9
По умолчанию Удаление из RichEdit1 всего, что есть в RichEdit2

Здравствуйте! Нужно удалить весь текст из RichEdit2, который находится в RichEdit3. Пробовал делать так, но тогда также удаляются лишние строки вначале:
Код:
for s := 0 to RichEdit2.Lines.Count do begin
  for m := 0 to RichEdit3.Lines.Count do begin
  if Pos (RichEdit3.Lines[m], RichEdit2.Lines[s]) > 0 then begin
      RichEdit2.Lines.Delete(s);
  end;
  end;
  end;
В чём проблема?

Последний раз редактировалось LongMonster; 14.03.2015 в 20:41.
LongMonster вне форума Ответить с цитированием
Старый 14.03.2015, 20:39   #2
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Что значит удалить весь текст? Видимо совпадающие строки? Зачем pos если удаляется целиком строка, тогда просто строки сравнивать. Удалить нужно из RichEdit1, а удаляются и не правильно из RichEdit2. RichEdit3 вообще нет в условии, а в коде есть. Циклы должны быть до Count-1, а в том, из которого будут строки удаляться должен быть обратный цикл
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.03.2015, 20:43   #3
LongMonster
 
Регистрация: 14.03.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Что значит удалить весь текст? Видимо совпадающие строки? Зачем pos если удаляется целиком строка, тогда просто строки сравнивать. Удалить нужно из RichEdit1, а удаляются и не правильно из RichEdit2. RichEdit3 вообще нет в условии, а в коде есть. Циклы должны быть до Count-1, а в том, из которого будут строки удаляться должен быть обратный цикл
Да, совпадающие строки. То есть, нужно удалить все повторяющие строки из RichEdit2, которые есть в RichEdit3.

Поправил по поводу RichEdit1 - брал просто условно.
Можете поправить код чтобы правильно работало?
LongMonster вне форума Ответить с цитированием
Старый 14.03.2015, 20:46   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Код:
for i:=0 to RichEdit3.Count-1 do
  for j:=RichEdit2.Count-1 downto 0 do
    if RichEdit2.Lines[j]=RichEdit3.Lines[i] then RichEdit2.Lines.Delete(j);
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.03.2015, 20:49   #5
F1n4
Пользователь
 
Регистрация: 13.03.2015
Сообщений: 14
По умолчанию

Richedit2.text:=Stringreplace(Riche dit2.text,Richedit3.text,'',[rfignorecase,rfignoreall]);
F1n4 вне форума Ответить с цитированием
Старый 14.03.2015, 20:53   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 18,922
По умолчанию

Stringreplace можно конечно вместо второго цикла, но не так же
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Аватар вне форума Ответить с цитированием
Старый 14.03.2015, 21:18   #7
LongMonster
 
Регистрация: 14.03.2015
Сообщений: 9
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Код:
for i:=0 to RichEdit3.Count-1 do
  for j:=RichEdit2.Count-1 downto 0 do
    if RichEdit2.Lines[j]=RichEdit3.Lines[i] then RichEdit2.Lines.Delete(j);
Большое спасибо, работает.
LongMonster вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Удаление из срр файла всего текста кроме комментариев julia9311 Общие вопросы C/C++ 17 19.10.2018 02:16
удаление элемента односвязного списка. язык СИ. всего 5 строчек кода, много времени не займет. MisterTreb Помощь студентам 0 08.01.2013 15:17
есть небольшой код скорей всего лог ошибка toha_master Общие вопросы Delphi 2 19.11.2012 06:23
Удаление всего кроме формул Severny Microsoft Office Excel 21 13.07.2011 12:22
3d графики: что вообще есть и что лучше использовать Krasi Общие вопросы по Java, Java SE, Kotlin 1 09.05.2011 14:41