Жанры
 
загрузка...

Советуем почитать 

загрузка...

Статьи сайта

Как сохранить все книги Рунета на одном диске?

Рейтинг видеопродукции – фильмов, сериалов, обучающих курсов, документалистики – просто зашкаливает, но при этом множество людей все еще ценят обычные электронные книги, воспринимая текст в них как должное. Пословица насчет того, что лучше один раз увидеть чем услышать, на книги не распространяется, если, конечно, речь не идет об аудиокнигах – но это занятие для совсем ленивых.

Сбор библиотеки относится к наиболее трудным занятиям, и при этом не всегда ясно, какой формат лучше выбирать для книг. Скажем, FB2 многим хорош, но для простого текста он слишком массивен, ePUB еще больше, а PDF/DjVu напоминают монстров. В любом случае, все эти форматы содержат слишком много лишней информации, и объем средней книги достигает 1-20 Мб. Интересно, что в большинстве случаев достаточно лишь входящего в него текста формата TXT, чей объем редко превышает 200-300 Кб. Проблема заключается в том, чтобы «втиснуть» на диск как можно больше книг, пусть даже они будут храниться изначально в некоем промежуточном формате, аналогично архиву.

Просто упаковать FB2 книгу – мало. Идея состоит в том, чтобы изначально оценить книгу на структуру оформления – есть ли там важные картинки, формулы, фотографии и другая интегрированная графика. Все это должно изыматься и храниться отдельно от книги, и то, если это имеет смысл. Остальной текст с помощью программы преобразуется в список уникальных слов, которым присваивается свой номер. В дальнейшем, текст вновь выводится в файл, а слова, найденные в словаре, заменяются на номера. Такая технология применялась раньше для составления help-файлов и несложных методов упаковки. В данном случае эффективность словаря можно значительно повысить, если пополнять его состав следующими книгами. Для удобства, для каждого начального символа словаря можно отвести отдельный файл. Таким образом, на всю библиотеку будет работать только один словарь, размер которого будет со временем увеличиваться очень незначительно – книжный язык не столь разнообразен по составу. Дополнительно, можно применять методы оптимизации – не присваивать коды наиболее коротким словам, игнорировать регистр слов (если это не аббревиатура и не собственное имя), использовать финишную упаковку книги zip/rar архиватором. Не лишним будет добавление пользовательских словарей, куда можно заносить имена, названия стран, городов. В идеале, для каждого слова желательно хранить лишь его основную форму в именительном падеже и единственном числе, а окончания «достраивать» по дополнительным информационным полям. Восстанавливаться такая книга будет методом генерации TXT формата, а затем, по запросу, в один из требуемых форматов.