Цитата:
Поздравляем с первым сообщением
Пожалуй тоже отмечусь

Решил подойти к проблеме со стороны csv-таблиц.
Скачал все три раздачи:
rutr.life/forum/viewtopic.php?t=4546210
rutr.life/forum/viewtopic.php?t=4204390
и текущую.
Поставил перед собой задачу объединить информацию из них из всех,
сгруппировав по хешам. Для последующего просмотра и поиска в MS Access 2003
и Notepad++ 6.5.5.
Соединять файлы категорий можно командой copy (см. справку по команде)
или WinHex (concatenate files). После использования команды copy не забудьте
убрать байт "1A" с конца получившегося файла (в WinHex, например). Если же применить
синтаксис copy /b ... , то убирать лишний байт не придётся.
В качестве решения по сортировке и отбраковке нашёл хорошие юниксовые
команды-утилиты под винду:
gnuwin32.sourceforge.net/packages/coreutils.htm
(есть и более старый пакет утилит
www.weihenstephan.de/~syring/win32/UnxUtilsDist.html )
Файлы из архива удобно кинуть в системную папку, чтобы команды обрабатывались
в командной строке из любого пути. Научился использовать sort и uniq. См. справку
по этим командам. Для перегруппировки столбцов пришлось воспользоваться
LibreOffice Calc 3.6.5.2 normal portable
( downloadarchive.documentfoundation.org/libreoffice/old/3.6.5.2/box )
Он поддерживает миллион с небольшим строк в таблице (всё равно приходится
работать по частям).
К сожалению, утилита sort русские названия сортирует своеобразно
(не обкатана под кириллицу).
Поэтому для финальной сортировки по именам раздач тоже рекомендую Calc.
Но Calc тормозной и не даёт импортировать таблицу целиком,
так что по хешу (и другим числовым полям) рационально будет сортировать
всё-таки утилитой sort.
Также пригодился WinHex 13.0, с помощью которого удобно заменять
группы символов в файлах). Для того же применяется и Notepad++.
В раздаче 2013-го года пришлось переводить хэши из base32 в обычный формат.
Я сделал это с помощью микропрограммки, указанной в комментариях на хабре
той раздачи ( habrahabr.ru/post/195454 ).
Из "официальной" раздачи 2014-го года не удалось выдрать категории
(уж больно хлопотно). Но и без них нормально.
В итоге получилась csv-таблица высотой в 2 082 304 строки
(это только уникальные хэши,
но многие раздачи похожи/перезалиты).
Размер - 600 276 629 байта в чистом виде и 161 178 428 байта в виде rar-архива.
Мгновенно открывается в Access. Некоторые ненужные поля легко скрыть.
Поиск - 30 секунд.
Но ещё удобнее искать в Notepad++ ! Поиск фразы 20 секунд.
Если нужно выполнить сложный поиск, то ищем по первому запросу
(нажимаем "Найти всё в текущем документе") - Notepad++ выдаёт все
результаты в нижней части окна. Затем копируем все эти результаты (строки)
в новое окно Notepad++, ищем уже следующий запрос. Круг заметно сужается.
И так, пока не останется несколько строк. За минуту обычно всё находится!
Так что советую делать так же, как я (тем, кто хочет освоить алгоритм работы
с базами). И результат (при аккуратной работе) будет очень неплохой.
У меня были вначале серьёзные косяки, так как эти базы в разных кодировках,
а я это не учёл. Пришлось переделывать. Переводите сразу всё в UTF-8 - вот мой совет.
Ещё надо сразу заменить все символы " на ' ' и ; на , потому что эти символы используются
в csv как разделители и ограничители полей. Если этого не сделать, то в Calc
возни будет очень много! Нужно тренировать аккуратность для создания таких баз.
Ещё выявились ошибки в именах раздач:
при сортировке по полю "Имя раздачи" оказалось,
что некоторые англоязычные названия имеют первую и/или другие буквы
из русского алфавита и сортируются некорректно. То-есть, они оказываются
между русскими названиями. Это буквы "o, a, x, c, p" и другие похожие в обоих алфавитах.
Аналогично для русскоязычных названий. Это может мешать текстовому поиску.
Прошу авторов программ обратить внимание на этот косяк.
Ещё совет: при импорте в Access (первый раз) указывайте для поля "Размер"
формат "Денежный", так как именно этот формат выводится в удобочитаемой форме
на экран (не сокращается например до 1,1E+12, а разбивается на разряды пробелами).
Итог - работать непосредственно с csv очень даже удобно. В MS Access
(возможно, что и в Libre Office Database, но уж больно там всё глючное)
и в Notepad++ простой поиск занимает 20-30 секунд по всей базе, в Notepad++
его результаты ещё и очень удобно выводятся на экран.
Мои рекомендации доступны каждому, чтобы собрать такую таблицу самостоятельно.
Это - реально!
Всем спасибо за работу!!!