![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 | ||
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
![]()
У меня в Мемо1 список предметов, в Мемо 2 второй список предметов
Мемо1 Цитата:
Цитата:
Как замутить так чтобы в Мемо 2 все те предметы которые есть в Мемо 1 были удалены, причем что бы все это безобразие не тормозило? |
||
![]() |
![]() |
![]() |
#2 |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
![]() Код:
Последний раз редактировалось Federal; 22.02.2011 в 23:42. |
![]() |
![]() |
![]() |
#3 |
Старожил
Регистрация: 30.12.2009
Сообщений: 11,434
|
![]()
тот же самый код с пересчетом строк memo1 и memo2 только используй эти функции: AnsiCompareStr
или AnsiCompareText |
![]() |
![]() |
![]() |
#4 | |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
![]() Цитата:
500 000 строк умножить на 500 000 строк это 250 000 000 000 циклов комп захлебывается когда пытается обработать такой цикл Последний раз редактировалось Federal; 23.02.2011 в 00:02. |
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
![]()
помоему тут не обойтись без этого количества просмотров. можно воспользоватся например бинарным поиском, но обязательное условие - сортированные данные.
|
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
![]() |
![]() |
![]() |
![]() |
#7 |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
![]()
я бы и рад помочь да особо не знаю чем.
в С есть готовая функция bsearch, в паскале по-видимому нет вот что нашел- тут вроде неплохо описано http://www.cyberguru.ru/programming/...ia-page19.html если функция вернула 0 переносить слово(ключ), иначе не переносить... |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
![]()
ребят, ну что же Вы велосипед изобретаете.
Когда всё изобретено до нас ![]() 1) откажитесь от Memo (используйте TStringList) Это тоже самое, что Memox.Lines только отсутствие визуализации очень положительно скажется на быстродействии. 2) отсортируйте первый список : TS1.Sort; 3) цикл по второму списку и те значения, которых нет в TS1 - переносите в третий список (это, в общем случае, будет быстрее, чем удалять элементы списка) для поиска элементов в TS1 используйте метод Find примерно так: Код:
Если нужно часто и быстро решать подобную задачу - пересматривайте логику работы. 5) для решения подобной задачи целесообразно, имхо, использовать SQL + хорошую большую мощную СУБД: MS SQL, Oracle и т.д. Они "заточены" под эффективную обработку огромных массивов информации... p.s. а откуда подобные задачи возникают, если не секрет?... |
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 21.05.2010
Сообщений: 77
|
![]()
Спасибо, это уже в разы грамотно...
Я брутил сервер игры Lineage, проверил первую базу аккаунтов их там 250 000 ак, откапал вторую базу в 500 000 аккаунтов, ну и мне естественно не хотелось что бы во второй базе не встречались аккаунты из первой базы. Вот откуда такая задача мне пришла. Порылся в интернете в поиске готовой программы, но толкового не нашел... Попробывал сам состряпать с мизерными знаниями Delphi, оказалось не все так просто ![]() |
![]() |
![]() |
![]() |
#10 | |
Форумчанин
Регистрация: 29.09.2010
Сообщений: 636
|
![]() Цитата:
ахахахах! я месяц назад именно для этой цели (отсев повторов аккаунтов) писал прожку. работает она напролом конечно , ну 100к аккаунтов гдето за 30 сек обрабатывает. не такие уж там и тормоза как ты написал. |
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
удалить повторы | FAiver | Общие вопросы Delphi | 5 | 21.10.2010 20:45 |
Повторы в ListView | Shouldercannon | Общие вопросы Delphi | 2 | 21.10.2010 13:52 |
Как в удалить кучу строк, через одну? | levohotnik | Microsoft Office Excel | 6 | 09.09.2010 21:08 |
повторы в Random | Natok | Помощь студентам | 4 | 26.05.2009 17:41 |
Убрать повторы | ShnapS | БД в Delphi | 4 | 15.05.2009 23:03 |