![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Форумчанин
Регистрация: 31.12.2010
Сообщений: 320
|
![]()
В мемо имеется 15 строк такого вида:
Код:
в результате должно получиться так: Код:
казалось бы ничего сложного, 2 цикла все решат, но чтот у меня не выходит, вот мой вариант: Код:
|
![]() |
![]() |
![]() |
#2 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
во-первых, запомните, прямой цикл FOR НЕ ПОДХОДИТ для тех случаем, когда количество элементов изменяется (в данном случае - уменьшается).
Либо используйте другие виды циклов: while / repeat, либо, рекомендую, используйте ОБРАТНЫЙ цикл: Код:
второе. в вашем примере строки отсортированы. На это можно полагаться при проверке совпадения общей части?! (если задача допускает, то можно отсортировать строки - это резко упрощает и ускоряет процедуру удаления повторов общей части) для сортированного списка попробуйте такой код: Код:
Последний раз редактировалось Serge_Bliznykov; 29.04.2013 в 13:27. |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 31.12.2010
Сообщений: 320
|
![]()
список может быть не сортированый
Код:
сейчас проверю код для сортированого списка, если все круто, так какие проблемы отсортировать список до начала удаления дублей) Последний раз редактировалось megostudent; 29.04.2013 в 13:59. |
![]() |
![]() |
![]() |
#4 |
Форумчанин
Регистрация: 31.12.2010
Сообщений: 320
|
![]()
Работает просто превосходно даже если список не сортированый!
Сергей спасибо большое! проверял на таком варианте Код:
Код:
|
![]() |
![]() |
![]() |
#5 | ||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]() Цитата:
Код:
алгоритм будет прекрасно работать со списком, где СОВПАДАЮЩИЕ левые части идут подряд, друг за другом. если левые части будут "в разнобой": 1.1.1.1:1111 2.2.2.2:2222 2.2.2.2:5555 1.1.1.1:1111 1.1.1.1:2222 2.2.2.2:7777 1.1.1.1:4444 то такие записи не будут идентифицированы как повторяющиеся и, соответственно, не будут удалены из списка. Цитата:
|
||
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как в Мемо отменить удаление текста? | Andrey770 | Общие вопросы Delphi | 3 | 09.04.2012 00:57 |
Удаление повторов слов в строке | as1212 | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 08.11.2011 20:55 |
Удаление повторов с последующим копированием нужной инфы | ujen | Microsoft Office Excel | 4 | 07.07.2011 01:21 |
Удаление найденый слов из мемо | bulldog5293 | Общие вопросы Delphi | 0 | 22.05.2011 15:41 |
Удаление буквы или пробела в мемо по нажатию на кнопку. | troyan32 | Общие вопросы Delphi | 7 | 07.02.2011 20:03 |