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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.02.2014, 16:44   #1
androdrev
Форумчанин
 
Аватар для androdrev
 
Регистрация: 19.03.2013
Сообщений: 135
По умолчанию Немного строчек и сравнения

Помогите, плиз, дайте примерчик

Если в мемо2 есть те же строки, что и в мемо1, то убрать их из мемо1. А остальные оставить.

Например, в мемо1 есть строки 111, 222 и 333, а в мемо2 есть строки 333 и 222. Надо убрать из мемо1 строки, имеющиеся в memo2.

Последний раз редактировалось androdrev; 26.02.2014 в 16:47.
androdrev вне форума Ответить с цитированием
Старый 26.02.2014, 16:57   #2
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

Код:
for i:=Memo1.Lines.Count-1 downto 0 do for j:=0 to Memo2.Lines.Count-1 do if Memo1.Lines[i]=Memo2.Lines[j] then begin Memo1.Lines.Delete(i); break; end;
как то так.
и вроде Delete удаляет, не помню уже.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.02.2014, 17:03   #3
androdrev
Форумчанин
 
Аватар для androdrev
 
Регистрация: 19.03.2013
Сообщений: 135
По умолчанию

Цитата:
Сообщение от Пепел Феникса Посмотреть сообщение
Код:
for i:=Memo1.Lines.Count-1 downto 0 do for j:=0 to Memo2.Lines.Count-1 do if Memo1.Lines[i]=Memo2.Lines[j] then begin Memo1.Lines.Delete(i); break; end;
как то так.
и вроде Delete удаляет, не помню уже.
БЛАГОДАРЮ!!! Огромное спасибо! Я над этой 1,5 часа голову ломал)) Вы мегагений))))
androdrev вне форума Ответить с цитированием
Старый 26.02.2014, 17:09   #4
northener
ПШП
Участник клуба
 
Регистрация: 15.07.2013
Сообщений: 1,872
По умолчанию

С помощью IndexOf код своей программы можно сделать короче.
Код:
for i:=Memo1.Lines.Count-1 downto 0 do if Memo2.Lines.IndexOf(Memo1.Lines[1]) >=0 then Memo1.Lines.Delete(i);

Последний раз редактировалось northener; 26.02.2014 в 17:12.
northener вне форума Ответить с цитированием
Старый 26.02.2014, 17:25   #5
Пепел Феникса
Старожил
 
Аватар для Пепел Феникса
 
Регистрация: 28.01.2009
Сообщений: 21,000
По умолчанию

да, вы правы.
хех, тяжело сейчас после шарпа было хД.
Хорошо поставленный вопрос это уже половина ответа. | Каков вопрос, таков ответ.
Программа делает то что написал программист, а не то что он хотел.
Функции/утилиты ждут в параметрах то что им надо, а не то что вы хотите.
Пепел Феникса вне форума Ответить с цитированием
Старый 26.02.2014, 17:38   #6
androdrev
Форумчанин
 
Аватар для androdrev
 
Регистрация: 19.03.2013
Сообщений: 135
По умолчанию

Цитата:
Сообщение от northener Посмотреть сообщение
С помощью IndexOf код своей программы можно сделать короче.
Код:
for i:=Memo1.Lines.Count-1 downto 0 do if Memo2.Lines.IndexOf(Memo1.Lines[1]) >=0 then Memo1.Lines.Delete(i);
Нужды в сокращении нет, но все равно спасибо)
androdrev вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Опиание строчек Luxian Помощь студентам 0 21.01.2011 19:10
сортировка строчек 0mega Microsoft Office Excel 4 18.05.2010 22:27
сортировка строчек 0mega Microsoft Office Word 0 18.05.2010 19:21
описание строчек в программе в С++ Luxian Помощь студентам 0 21.10.2009 20:18
Появление строчек aleksandr_r Microsoft Office Excel 2 08.09.2008 14:26