![]() |
[Delphi] Вопрос на засыпку #3
есть Memo примероного содержания:
Код:
Mygarin - Signs of Existence вопрос! как удалить все одинаковые строчки, оставляя только одну копию? Получится должно типа того: Код:
Mygarin - Signs of Existence |
ппц. гугл - не?
самое простое - через промежуточный TSTringList(есть свойство Duplicates, которому присвоиваешь dupIgnore). |
блин.. у мну моги щас кипят.. ктонить подкинет код?
|
Код:
procedure TForm1.Button1Click(Sender: TObject); |
спасибо! а без сортировки можно какнить обойтись?
|
Код:
var |
Сортировка не нужна, можешь её убрать.
|
всем спасибо! вопрос закрыт..
|
Jaw, при большом кол-ве строк этот код оч. долго будет удалять дубли
|
Dizz, к сожелению или к счастью ты был прав мой код справился с файлом в ~5k строк за 2 минуты, код intNet за считаные милесекунды.
|
можно еще так: засовываешь текст мемо в стринглист, сортируешь его. далее - сравниваешь первую строку со второй, и если они совпадают - удаляешь вторую. если не совпадают - сравниваешь вторую с третьей. и т.д.
довольно шустрый метод, чесслово :) |
Быстрее делать так, читаем из Memo.Lines.Strings, делаем двойной цикл(проверка текущего со всеми) при этом пишем в другой TStringList, потом Assign в Memo. Скорость обработки будет обратно пропорциональна прогрессу обработки + копирование данных.
|
Цитата:
|
Цитата:
а за счет дерева и двоичного поиска обработает как минимум 5 миллионов очень быстро про какие то ~5k и говорить не стоит :) |
у меня списки маленькие. Максимуму до 2х к
|
| Время: 10:09 |