Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

Ответ
 
Опции темы
Старый 09.11.2017, 17:10   #1
Hamza117
Пользователь
 
Регистрация: 04.10.2017
Сообщений: 10
Репутация: 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, 18:23   #2
Serge_Bliznykov
МегаМодератор
СуперМодератор
 
Регистрация: 09.01.2008
Сообщений: 23,760
Репутация: 5213
По умолчанию

Код:

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


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

skype: newerow1989
По умолчанию

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.narod.ru
[Паскаль] [Delphi]
newerow1989 вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите немного разобраться с печатью из memo GalaiAnton Общие вопросы Delphi 3 19.05.2015 14: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


16:22.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru