Page 2 of 2

Re: DictUI - интерфейс для DictZip

PostPosted: Fri Mar 30, 2012 2:09 pm
by quicktrick
Abs62 wrote:Но кому интересно, можно взять на пробу порт dictzip из 1.12.0


С большими dsl не хочет работать. С небольшими работает. Пробовал сжать dsl размером 2,3GB -- программа вылетает с сообщением типа "не могу зарезервировать 4 (с чем-то) GB памяти" (на моём компьютере 2GB). Однако dictzip 1.9.7 этот dsl сжимает нормально. Так что старый dictzip не удаляйте.

Re: DictUI - интерфейс для DictZip

PostPosted: Fri Jun 29, 2012 9:04 pm
by Abs62
С большими dsl не хочет работать.

Немного допилил. Вылетать не будет, будет завершаться штатно, матерясь на слишком большой файл.
Лежит здесь.
Однако dictzip 1.9.7 этот dsl сжимает нормально.

Всё равно такие файлы потом не читают ни GD, ни сам dictzip.

Re: DictUI - интерфейс для DictZip

PostPosted: Sun Jul 01, 2012 1:59 pm
by ikm
Там в самом формате заложено ограничение где-то в районе 2 гиг - таблица размеров блоков может иметь максимальный размер в 64k.

Re: DictUI - интерфейс для DictZip

PostPosted: Wed May 08, 2013 9:46 pm
by Tvangeste
Abs62 wrote:Немного допилил. Вылетать не будет, будет завершаться штатно, матерясь на слишком большой файл.

Кстати, может быть имеет смысл выложить эту спортированную версию dictzip'a куда-нибудь на гитхаб, даже и в отдельный репозиторий, а то мучительно иметь cygwin'ообразную старинную версию, которую и собрать-то под винды без плясок не так просто.

P.S. Да и DictUI было бы неплохо нормально заопенсорсить, если авторы еще не окончательно потерялись...

Re: DictUI - интерфейс для DictZip

PostPosted: Mon Aug 19, 2013 10:59 am
by Tvangeste
Abs62 wrote:
С большими dsl не хочет работать.

Немного допилил. Вылетать не будет, будет завершаться штатно, матерясь на слишком большой файл.

Abs62, a можно эту правочку в виде исходников где взять? Хотелось бы залить апдейт с этим фиксом вот сюда, раз уж репозиторий создан: https://github.com/Tvangeste/dictzip-win32

Re: DictUI - интерфейс для DictZip

PostPosted: Thu Aug 29, 2013 7:35 pm
by Abs62
Tvangeste wrote:Abs62, a можно эту правочку в виде исходников где взять?

Да я просто добавил в dict_data_zip() после вычисления extraLength:
Code: Select all
   if( extraLength > 0xFFFF ) {
      fprintf( stderr,"\nFile too long: %u chunks needed, 32762 allowed\n",chunks );
      fclose( inStr );
      fclose( outStr );
      unlink( outFilename );
      return -1;
   }

Допилить по вкусу. :)

Re: DictUI - интерфейс для DictZip

PostPosted: Tue Sep 10, 2013 5:11 pm
by Tvangeste
Abs62 wrote:
Tvangeste wrote:Abs62, a можно эту правочку в виде исходников где взять?

Да я просто добавил в dict_data_zip() после вычисления extraLength...
Допилить по вкусу. :)

Спасибо, подправил, раз уж выдалась свободная минутка! :)

http://is.gd/VA6ool

Re: DictUI - интерфейс для DictZip

PostPosted: Fri Feb 21, 2014 2:06 pm
by ccaid
есть такой проект: Idzip (Improved Dictzip)
автор нашел способ убрать ограничение 1.8 ГБ, пользуясь стандартной фишкой gzip. получаемые файлы распаковываются обычными gzip распаковщиками (я пробовал gzip и 7-zip), хотя правильный, полный листинг таких файлов не показывает никто. разумеется, для использования таких файлов GD потребует доработки.

и тут возникает вопрос — что может дать это решение? опытным путем на примере DSL-словаря я выяснил, что в GD есть собственное внутреннее ограничение в 2 ГБ. (почему оно вообще есть? и если уж есть, то почему 2, а не 4?) если это ограничение не будет убрано, и если оно действует на несжатый размер упакованного файла, то выигрыш от Idzip составит +0.2 ГБ. такая игра не стоит свеч.

другой вопрос — актуальность. на десктопе я не вижу применения этой технологии. самые большие словари — это оффлайн-википедии — представлены в форматах aard и zim, и оба формата десктопный GD понимает. а вот в мобильном GD поддержка aard до сих пор никак не вводится, и для оффлайн-википедий приходится использовать формат stardict, а там ограничение dictzip в 1.8 ГБ несжатого файла ощущается очень и очень. приведу пример: недавно сделанная ruwiki в формате stardict занимает уже 10 словарей, т.е. 30 файлов вместо исходных 2 в формате aard. а сколько их будет в enwiki?
если бы комплекс мер по убиранию ограничений на размер словарей был реализован на десктопном GD и потом плавно распространился бы на мобильный, то ruwiki могла бы занять 2-3 словаря stardict вместо 10.

хотелось бы услышать мнения людей, причастных к разработке GD, особенно Константина.

Re: DictUI - интерфейс для DictZip

PostPosted: Sun Feb 23, 2014 8:44 am
by ccaid
есть еще один интересный вариант. можно воспользоваться технологией из aard — каждую статью stardict сжимать независимо. как минимум, всегда методом deflate, как максимум одним из нескольких методов — какой даст меньший размер.