Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей.
Здесь обсуждаются безопасность, программирование, технологии и многое другое.
Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
 |
Работа с большими файлами |

06.10.2007, 03:43
|
|
Banned
Регистрация: 13.09.2006
Сообщений: 523
Провел на форуме: 2869410
Репутация:
925
|
|
Работа с большими файлами
Есть огромный файл (40 гигов с чем то),в нем построчно есть значения вида:
1111
2222
3333
4444
aaaa
bbbb
cccc
ccdd
fffffff
и.т.д
Мне нужно рассортировать эти значения по файлам,причем имя файла куда запишется строка,будет равна первым 3 символам.
Пробывал сам написать прогу,но работает уж очень медленно,я так посчитал,что потребуеться больше 2 дней чтобы рассортировать этот файл на более маленькие.
Вот возникает вопрос: Может кто нибудь софт какой нибудь предложит или рациональное решение 
|
|
|

06.10.2007, 04:21
|
|
Участник форума
Регистрация: 12.01.2007
Сообщений: 262
Провел на форуме: 4608122
Репутация:
874
|
|
Может как вариант.? Сначала не сортируй инфу на файлы своей прогой, а просто списывай кусок файла сначала и до определенного места, и сохраняй этот кусок в другом файле, далше следующий кусок - следующий файл. Короче разбиваем на маленькие кусочки, не сортировав. После этого через сортировку прогоняем все полученые маленькие файлы.
|
|
|

06.10.2007, 04:29
|
|
Banned
Регистрация: 18.05.2005
Сообщений: 1,981
Провел на форуме: 1941233
Репутация:
2726
|
|
потому что писать прогу надо не на делфи
я, если честно, не порубил какой у тебя там формат файла и что надо сделать, но сказать одно могу точно - максимально эффективно будет придумать самый быстрый алгоритм и зокодировать его хэкерским осенблерным кодесом
Последний раз редактировалось KEZ; 06.10.2007 в 04:33..
|
|
|

06.10.2007, 04:33
|
|
Постоянный
Регистрация: 16.08.2006
Сообщений: 640
Провел на форуме: 1354067
Репутация:
599
|
|
короч я бы завел структуру, открывал исходный файл маппингом. а дальше так
проходим по памяти открытой. ищем символ перевода строки. как нашли пиишем в труктуру точку начала строки и длину
таких элементов штук 500. после чтения всех 500 строк записываем их в файлы. в цикле. потом очищаем стурктуру(тупо ставить индекс текущей структуры = 0) и продолжаем читать следующие 500 элементов
[aaded]
kez, против. нада писать на си и компилить интеловским компилером. но здесь важнее алгоритмическая оптимизация. ибо все равно ест запись на диск, а быстрее чем запись работать прогу н получится.
|
|
|

06.10.2007, 05:50
|
|
Познавший АНТИЧАТ
Регистрация: 14.10.2004
Сообщений: 1,162
Провел на форуме: 5619724
Репутация:
2944
|
|
Рациональное решение - стереть его! =))
|
|
|

06.10.2007, 17:36
|
|
ВАША реклама ТУТ!!
Регистрация: 01.07.2005
Сообщений: 647
Провел на форуме: 3478464
Репутация:
714
|
|
И восстанавливать по частям по нужным файлам =)
__________________
My ICQ: 296@463@859 ONLY!! Please check your list!!
И здесь могла бы быть ВАША реклама!!!
|
|
|
|
 |
|
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
|
|
|
|