LibRusLib
Вторник, 26.11.2024, 03:04
Приветствую Вас Гость | RSS
 
Главная ФорумРегистрацияВход
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Пожелания
sergtchДата: Понедельник, 14.09.2015, 23:18 | Сообщение # 211
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Здравствуйте.

Для локального архива. Свои книги я храню в rar-архивах (так уж сложилось).
Попытки найти удовлетворяющую программу "библиотекарь/читалку" с его поддержкой не нашел.
То, что проприоритарный т.п. - я конечно могу понять, но мне от этого не легче.
Есть вялотекущая попытка написать свой каталогизатор, но чую, что это неподъемная для меня задача.
Мне кажется что поддержка RARа будет не сильно отличаться от поддержки ZIPа.
Такие вот мои резоны.


С уважением, Сергей.
 
drserjДата: Вторник, 15.09.2015, 20:23 | Сообщение # 212
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Мне кажется что поддержка RARа будет не сильно отличаться от поддержки ZIPа.

только для разархивации, для архивации - увы. Т.е. единственное, что можно сделать - добавить разбор формата, типа "имяединичногофайла.rar"... т.е одна книга, упакованная раром.
Хотя, я бы рекомендовал всё-таки перепаковать в зип. Это не так и сложно, но время, конечно, потратится. Я, например, держу всю флибусту в формате md5.zip, ибо только этот формат находит книгу в доли секунды со стопроцентной вероятностью. А рар - это от лукавого... Тогда уже 7z лучше.


drSerj
 
sergtchДата: Вторник, 15.09.2015, 22:53 | Сообщение # 213
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый вечер.
Архивация меня не очень беспокоит. А вот извлечения данных о книге в базу; передача книги в читалку - вот это надо.
Конечно я не храню файлы поодиночке.
ZIP, 7zip ... ну не лежит у меня к ним душа, как похоже у Вас к rar-у ;).

Может в настройках дать возможность выбора архиватора с настройкой команд и ключей? (Тут уж кому надо, сам настроит.) Или это потребует значительных изменений в программе?

P.S. Кстати, небольшое неудобство (или мелочь) выявилась в настройках "читалок", не знаю, где об этом лучше написать.


С уважением, Сергей.
 
drserjДата: Среда, 16.09.2015, 19:52 | Сообщение # 214
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Может в настройках дать возможность выбора архиватора с настройкой команд и ключей?

Дело в том, что программа поддерживает только один формат многофайловых архивов - это xxxxxx-yyyyyy.zip Это вынужденная мера, ибо сама библиотека распространяется в таком формате. 
Я так понял, что необходимо создание нового формата архива, в котором будет присутствовать более одной книги?  
Цитата sergtch ()
Может в настройках дать возможность выбора архиватора с настройкой команд и ключей
Вопрос не в количестве поддерживаемых архиваторов. Вопрос в быстродействии. Чем больше форматов, тем значительно дольше происходит поиск книг. Даже не знаю, стоит ли добавлять формат и утяжелять алгоритм поиска для одного пользователя... Если честно, я бы для себя добавил 7z, ибо он в некоторых случаях лучше rar, но решил, что сэкономленные метры на объеме в пол-терабайта - не стоят такого. А вот то, что zip встроен во все системы уже о чем-то говорит... 

Цитата sergtch ()
неудобство (или мелочь) выявилась в настройках "читалок"

Ну, своих читалок я не писал (точнее не распространял), так что даже не знаю, чем помочь...


drSerj
 
sergtchДата: Среда, 16.09.2015, 22:10 | Сообщение # 215
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Здравствуйте.
А что значит:
Цитата
необходимо создание нового формата архива
Это в смысле формат названия файла?
Да, архив содержит некое количество книг.
Т.е. шаблон имени архива задан жестко, а если имя архива rar-а будет создано по тому-же шаблону?

А как происходит поиск книг?
Распаковывается архив, считается md5 и ищется в базе или как-то по другому.
Ну, вообщем я не настаиваю, нет - так нет.

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

Вот так работает: "..\AlReader\AlReader2.exe"

А вот так, без кавычек, нет: ..\AlReader\AlReader2.exe

Но при записи в ini файл, кавычки убираются и при следующем запуске "читалка" не находится.


С уважением, Сергей.
 
drserjДата: Четверг, 17.09.2015, 21:14 | Сообщение # 216
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Т.е. шаблон имени архива задан жестко

Да, причем изначально и самой библиотекой.

Цитата sergtch ()
а если имя архива rar-а будет создано по тому-же шаблону?


ммм... не помню, надо смотреть код... расширение отдельно определяется... Но это для одиночных книг... Щаз не вспомню....

Цитата sergtch ()
А как происходит поиск книг? Распаковывается архив, считается md5 и ищется в базе или как-то по другому.


Там же много вариантов, каждый определяется по-своему. Например, тот единственный формат для нескольких книг в одном архиве имеет имя первыйбукид-последнийбукид.zip (1000-2000.zip) а в нем книги с именем bookid.ext. это стандартный формат либруса/флибусты. Потом добавили впереди f.fb2 или fn   (f.fb2.420301-420410.zip) но я это игнорирую. 



как-то так работает...
попробуй .\..\AlReader\AlReader2.exe

 .\ в начале пути показывает, что от текущего каталога отсчет...
 
Цитата sergtch ()
Но при записи в ini файл, кавычки убираются и при следующем запуске "читалка" не находится.


логично... 

Цитата sergtch ()
Ну, вообщем я не настаиваю, нет - так нет.


если внутри архива книги имеют имена, соответствующие bookid книги в базе - теоретически можно добавить и рар... хоть и муторно.. Это еще, как минимум, потребует добавления dll-ки рара...
Прикрепления: 0451581.png (8.7 Kb)


drSerj
 
sergtchДата: Четверг, 17.09.2015, 22:35 | Сообщение # 217
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый вечер.
В общих чертах понятно. 
Я предполагал что можно обойтись вызовом внешнего архиватора (с указанными ключами).
Спасибо за уделенное время, буду сам кумекать.  

 
Цитата
.\ в начале пути показывает, что от текущего каталога отсчет...
 Да, Ваш вариант работает, как-то я не додумался до этого.

Кстати, а что за формат md5.zip или %z, что-то я ничего не нашел о нем (что такое md5 - знаю).

Добавлено (17.09.2015, 20:35)
---------------------------------------------
А вот кстати, в локальной библиотеке, обрабатываются "многокнижные" zipы с произвольным названием.


С уважением, Сергей.
 
drserjДата: Пятница, 18.09.2015, 19:15 | Сообщение # 218
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Кстати, а что за формат md5.zip или %z, что-то я ничего не нашел о нем (что такое md5 - знаю).

это единственный формат, который позволяет прямое обращение к файлу без поиска. Представляет собой структуру каталогов с именем файла на базе строки md5.
Т.е. считается md5 файла, например, 00111e14aa131fc75f25f53d80722f30.zip  По первым двум парам создаются каталоги в которые помещается файл.  \00\11
\00111e14aa131fc75f25f53d80722f30.zip

Т.е программе нет необходимости искать файл на диске, она сможет сама сформировать имя файла и напрямую к нему обратиться. И при такой структуре не возможны дубликаты файлов.Лично у меня такая структура, лежит вся флибуста, "поиск" файла - миллисекунды. При любой другой структуре - десятки, сотни секунд на реальный поиск файла. Это в том случае, если файлов не десятки или сотни, а десятки или сотни тысяч.
Цитата sergtch ()
А вот кстати, в локальной библиотеке, обрабатываются "многокнижные" zipы с произвольным названием.

естественно, изначально база строится по именам файлов в архиве (поле filename). Потом по этому имени файл и ищется. А иначе - как найти файл, если в базе флибусты значение этого поля не будет соответствовать имени файла в архиве? Ты же не будешь вручную менять все имена файлов после каждого обновления... Это просто нереально...


drSerj
 
sergtchДата: Пятница, 18.09.2015, 23:55 | Сообщение # 219
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Здравствуйте.
Т.е. одна книга - один md5.zip, а в базе это имя файла. (Эх, тут несколько вопросов возникло, но наверное здесь не место).


Цитата
естественно, изначально база строится по именам файлов в архиве (поле filename).
 Как говорится; кто о чем, а вшивый о бане, а я все о своем.
Мне и хочется, чтобы программа могла достать это все из rar-а в базу ну и могла передать "читалке", более ничего не надо.


С уважением, Сергей.
 
drserjДата: Суббота, 19.09.2015, 16:38 | Сообщение # 220
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
Т.е. одна книга - один md5.zip, а в базе это имя файла.


Да, именно так. А что бы в одном каталоге не скопилось пол-миллиона книг - еще и равномерное распределение по каталогам.

Цитата sergtch ()
Эх, тут несколько вопросов возникло, но наверное здесь не место

Ну почему же, вполне можно задавать...

Цитата sergtch ()
Мне и хочется, чтобы программа могла достать это все из rar-а в базу ну и могла передать "читалке", более ничего не надо.

Ну, мы, значит, не совсем друг друга поняли. Я про либрус/флибусту (многокнижные архивы) говорил. 
Если речь про приватную библиотеку - то теоретически можно. Правда, не смогу сказать как скоро, но при возможности попробую добавить...


drSerj
 
sergtchДата: Суббота, 19.09.2015, 20:34 | Сообщение # 221
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый вечер.

Вопросы вообщем-то связаны с тем, чем вызвано существенное повышение быстродействия. Операционка все равно занимается поиском.
Если в базе указан прямой путь, например: c:\Ив\ан\ИвановИванИванович.zip или c:\01\02\010244.zip разницы во времени выбора файла быть не должно. Если конечно в базе хранится только имя файла и начальный каталог, то да, программа сама будет формировать путь, и время доступа увеличится на время формирования этого пути. Ну это так, мои умозрительные рассуждения, вполне возможно что я что-то упускаю.


Цитата
Если речь про приватную библиотеку - то теоретически можно.
 Вот именно то, что мне хотелось бы.
Я всё понимаю,  поэтому просто буду ждать (честно говоря я сейчас пробую создать свой библиотекарь но это больше для изучения С#, так что это скорее всего ни во что не выльется). А Ваша программа действительно хорошая.


С уважением, Сергей.
 
drserjДата: Суббота, 19.09.2015, 21:39 | Сообщение # 222
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
Цитата sergtch ()
и время доступа увеличится на время формирования этого пути. Ну это так, мои умозрительные рассуждения, вполне возможно что я что-то упускаю.

да, упущено пара моментов...

1. при динамическом создании пути по заранее известному алгоритму скорость открытия файла - миллисекунды. Операционка не занимается поиском файла.
2. при большом к-ве файлов поиск системой может достигать десятков (иногда сотен) секунд. Это специфика работы файловой системы. Для простого примера советую тем же тоталом открыть каталог, в котором несколько тысяч файлов... Душераздирающее зрелище. Впрочем, под линухом - те же грабли... Проверено временем smile
В приватной библиотеке - проще, там есть местоположение и имя архива. Но всё-таки лучше иметь универсальную систему хранения файлов, более естественную именно для програмной обработки. Тем более, она распределяет файлы равномерно по всем каталогам и не позволяет тормозить при обращении к файлам еще на стадии открытия системой каталога.

отсюда вывод: при большом количестве файлов (десятки, сотни тысяч) только лишь время поиска файла для его открытия может достигать десятков или сотен секунд (зависит от к-ва файлов, фрагментации, скорости накопителя, к-ва памяти, типа файловой системы и т д), что оказывает катастрофический дискомфорт. Была даже предпринята попытка избавиться от тормозов, отключив поиск книги для вывода аннотации и обложки. Но это, зачастую, крайне неудобно.
И только использование формата %z позволило полноценно и комфортно пользоваться программой даже не на самых шустрых компьютерах.
Более того, формат  %z свойственен именно машинным системам с машинным поиском. Он более органичен, чем формат, более понятный для человека.

Цитата sergtch ()
честно говоря я сейчас пробую создать свой библиотекарь


я так и начинал писать эту программу. Правда, если честно, я бы остановился на версии 1.5 (лет этак 7 назад), но народ не дал (да и сейчас не дает, хотя чего бы еще придумать) скучать...


drSerj
 
sergtchДата: Воскресенье, 20.09.2015, 19:51 | Сообщение # 223
Рядовой
Группа: Пользователи
Сообщений: 14
Репутация: 0
Статус: Offline
Добрый вечер.

Понятно. Сталкивался с этим.

Да, это проблема, вовремя остановиться :).

Добавлено (20.09.2015, 17:51)
---------------------------------------------
Вот только сейчас столкнулся, у меня RAR создает правильные zip'ы!?. А zip такие - на которые все ругаются.
Буду разбираться, какие там версии zip'а актуальны.


С уважением, Сергей.
 
drserjДата: Воскресенье, 20.09.2015, 20:54 | Сообщение # 224
Генералиссимус
Группа: Администраторы
Сообщений: 4693
Репутация: 30
Статус: Offline
вроде, стандарт zip уже как-то менялся... точнее, дополнялся...

drSerj
 
Jetnavo0591Дата: Четверг, 24.09.2015, 12:41 | Сообщение # 225
Рядовой
Группа: Пользователи
Сообщений: 2
Репутация: 0
Статус: Offline
Здравствуйте.
Скажите, пожалуйста, есть ли возможность добавить в программу выбор формата скачиваемых книг (epub и fb2)?
Спасибо.
 
Поиск:

Copyright LibRusLib © 2024