Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сортировка или поиск дубликатов 
:(
    Опции темы
creas0ft
Дата 31.1.2007, 00:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 5.8.2006
Где: Саранск

Репутация: нет
Всего: 2



Есть файл 150 мегабайт. Просто некие урлы.
Есть замечательная программа Raptor.
При поиске дубликатов, она ищет на п4-3,2 и гиге оперативке почти 10 минут.
Как бы это убыстрить и написать свое...
--------------------
Форум программистов уклонистов в сторону сео-шмео
PM MAIL WWW ICQ   Вверх
W4FhLF
Дата 31.1.2007, 09:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


found myself
****


Профиль
Группа: Участник Клуба
Сообщений: 2831
Регистрация: 2.12.2006

Репутация: 6
Всего: 121



Ну если оперативы не жалко:

Код

  str := TStringList.Create;
  str.Sorted:=True;
  str.Duplicates := dupIgnore;
  str.LoadFromFile('E:\1.txt');
  str.SaveToFile('E:\1.txt');



--------------------
"Бог умер" © Ницше
"Ницше умер" © Бог
PM ICQ   Вверх
creas0ft
Дата 31.1.2007, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 5.8.2006
Где: Саранск

Репутация: нет
Всего: 2



str.Duplicates := dupIgnore;
а такое будет работать если я добавляю просто в StringList в процессе работы.
Не будет добавлен дубликат?!
--------------------
Форум программистов уклонистов в сторону сео-шмео
PM MAIL WWW ICQ   Вверх
Yanis
Дата 31.1.2007, 15:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Участник Клуба
Сообщений: 2937
Регистрация: 9.2.2004
Где: Москва

Репутация: 72
Всего: 111



Цитата(creas0ft @  31.1.2007,  15:59 Найти цитируемый пост)
а такое будет работать если я добавляю просто в StringList в процессе работы.

да


--------------------
user posted image *щёлк*
PM MAIL WWW ICQ   Вверх
VladBD
Дата 31.1.2007, 15:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 19.11.2006

Репутация: 1
Всего: 5



Yanis, а там нет ограничений на размерность т.к. 150М - это строк просто немеряно!!!

Может в БД вставлять, а в поле условие на уникальность прописать, как думаете быстрей будет?
PM MAIL   Вверх
Guedda
Дата 31.1.2007, 15:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Подрывник
****


Профиль
Группа: Завсегдатай
Сообщений: 3137
Регистрация: 27.12.2005
Где: Ростов-на-Дону

Репутация: 14
Всего: 78



Цитата(VladBD @  31.1.2007,  15:21 Найти цитируемый пост)
ограничений на размерность т.к. 150М - это строк просто немеряно!!!

Нет ограничений ;)


--------------------
Ll 2
PM MAIL WWW ICQ Skype GTalk   Вверх
creas0ft
Дата 31.1.2007, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 5.8.2006
Где: Саранск

Репутация: нет
Всего: 2



Работает конечно добавление дублей, но очень медленно.
Память жрется ужас. 
НА 100 строчках - 100 мегов.


Это сообщение отредактировал(а) creas0ft - 1.2.2007, 02:43
--------------------
Форум программистов уклонистов в сторону сео-шмео
PM MAIL WWW ICQ   Вверх
creas0ft
Дата 1.2.2007, 02:54 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 117
Регистрация: 5.8.2006
Где: Саранск

Репутация: нет
Всего: 2



Как же быстро проверить на дубликаты?!

--------------------
Форум программистов уклонистов в сторону сео-шмео
PM MAIL WWW ICQ   Вверх
ivan219
Дата 1.2.2007, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1121
Регистрация: 19.11.2005
Где: Планета земля

Репутация: 2
Всего: 12



Построчный перебор.
Код

 for A:=0 to High(A1)-1 do
  for L:=A+1 to High(A1)-1 do
   if A1[A]=A1[L] then A1[L]:='';

После чего надо зделать.
Код

 for A:=0 to High(A1)-1 do
  if A1[A]<>'' then
   begin
    A2[Ac]:=A1[A];
    Inc(Ac);
   end;    

PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0474 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.