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

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

Вернуться   Форум программистов > Delphi программирование > Lazarus, Free Pascal, CodeTyphon
Регистрация

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.11.2017, 16:10   #1
Hamza117
Пользователь
 
Регистрация: 04.10.2017
Сообщений: 10
По умолчанию Помогите с memo!

В memo1 есть 5 строк
1 2 3 4 10
1 2 3 5 9
1 2 3 6 8
1 2 4 5 8
1 2 4 6 7
В memo2 есть 2 строчки
1 2 3 4 11
1 2 3 6 8
как сделать, что бы по нажатию кнопки удалялись все повторяющиеся строки из memo1 и из memo2
В моём примере это.
1 2 3 6 8
Эта строка должна удалиться из memo1 и memo2
Hamza117 вне форума Ответить с цитированием
Старый 09.11.2017, 17:23   #2
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,238
По умолчанию

Код:
цикл по Memo1 обратный (от последней строчки к первой)
  ищем индекс текущей строки в Memo2 (см. метод IndexOf())
  если нашли - удаляем найденное из Memo2 и текущее из Memo1
конец цикла

кстати, не рекомендую пользоваться TMemo - это ВИЗУАЛЬНЫЙ компонент.
Лучше использовать TStringList - получите выигрыш в быстродействии на порядок!
Serge_Bliznykov вне форума Ответить с цитированием
Старый 12.11.2017, 16:55   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,945
По умолчанию

2 способа:
Код:
procedure TForm1.Button1Click(Sender: TObject);
var i,j:integer;
    del:boolean;
    sl1,sl2:tStringList;
begin
   sl1:=tStringList.Create;
   sl2:=tStringList.Create;
   sl1.Text:=Memo1.Text;
   sl2.Text:=Memo2.Text;
   For j:=sl2.Count-1 downto 0 do
   begin
      del:=false;
      For i:=sl1.Count-1 downto 0 do
         If sl1[i]=sl2[j] then
         begin
            sl1.Delete(i);
            del:=true;
         end;
      If del then
         sl2.Delete(j);
   end;
   Memo1.Text:=sl1.Text;
   Memo2.Text:=sl2.Text;
   sl1.Free;
   sl2.Free;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i,j:integer;
    del:boolean;
    sl1,sl2:tStringList;
begin
   sl1:=tStringList.Create;
   sl2:=tStringList.Create;
   sl1.Text:=Memo1.Text;
   sl2.Text:=Memo2.Text;
   For j:=sl2.Count-1 downto 0 do
   begin
      i:=sl1.IndexOf(sl2[j]);
      If i>=0 then
      begin
         sl1.Delete(i);
         sl2.Delete(j);
      end;
   end;
   Memo1.Text:=sl1.Text;
   Memo2.Text:=sl2.Text;
   sl1.Free;
   sl2.Free;
end;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите немного разобраться с печатью из memo GalaiAnton Общие вопросы Delphi 3 19.05.2015 13:43
Delphi.Чтение файла в Memo, вычисление, добавление строк в Memo antonio_sk Помощь студентам 0 26.04.2013 18:01
Помогите вытянуть нужный текст из memo XazzzI Общие вопросы Delphi 11 17.06.2009 17:06
Помогите с подсветкой в Memo xReactions Общие вопросы Delphi 17 01.06.2009 09:38
Помогите организовать добавление в memo или listbox... Arkuz Компоненты Delphi 6 25.04.2008 18:16