Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.02.24;
Скачать: CL | DM;

Вниз

KolBZip2   Найти похожие ветки 

 
BMouradov   (2007-07-07 18:27) [0]

Господа, помогите, пожалуйста, с компонентом KolBZip2. На простом примере получаю Access Violation:

var i: integer;
   Buf: array[0..1023] of char;
begin
 InStream := NewReadFileStream(InFile);
 OutStream := NewWriteFileStream(OutFile);
 CStream := NewBZCompressionStream(bs9, OutStream);

 repeat
   i := InStream.Read(Buf, SizeOf(Buf));
   CStream.Write(Buf, i); <-- Access Violation
 until i = 0;

При первом же вызове Write получаю ошибку. При трассировке увидел нечто странное - Delphi не проваливался во Write, а в NewBZCompressionStream первой строчкой идёт Result:= PBzCompressionStream(NewCustomBzip2Stream(Dest));, т.е. создается один компонент, а используется как другой. Мне кажется, здесь ошибка. То же самое и при декомпрессии. Помогите исправить.


 
D[u]fa ©   (2007-07-07 20:08) [1]

мб надо OutStream.Write?


 
BMouradov   (2007-07-08 02:40) [2]

Нет, не пойдет - прежде чем выводить, надо сначала сжать.


 
Дмитрий К ©   (2007-07-08 11:06) [3]

KOLBZip2 обязательно использовать?

http://www.kolnmck.ru/files/components/compress/zlibbzip.7z


 
D[u]fa ©   (2007-07-08 13:00) [4]

посмотрел компонент. там явно ошибки или несовместимость с текущей версией, пробуй компонент что посоветовали


 
BMouradov   (2007-07-08 13:58) [5]

Да, этот компонент работает, спасибо.

Наверное, авторам все равно следует или исправить или удалить тот компонент.

Искал, чем сжать файл с данными, не используя внешних dll.
Если кому интересно:

файл 2400Кб (метод, размер, упаковка, распакова, процессор целерон 2.6):

KolZlib, Zlib, Z - 595Кб 1,4 сек 0,3 сек
Bzip2 - 460Кб 0,3 сек 0,1 сек

Для сравнения, внешними архиваторами:

zip - 590Кб
rar - 400Кб


 
BMouradov   (2007-07-08 14:03) [6]

Забыл сказать, что

KolZlib, Zlib, Z - добавляют 33Кб к размеру программы
Bzip2 - 40Кб


 
=BuckLr=   (2007-07-08 15:00) [7]


> KolZlib

CompressBuf не пашет, имейте в виду.


 
ANTPro ©   (2007-07-08 15:04) [8]

> [6] BMouradov   (08.07.07 14:03)

Можно еще UCL попробовать. Быстро работает и мало кода к EXE прибавляет. Жмет как ZIP.


 
=BuckLr=   (2007-07-08 21:06) [9]


> Можно еще UCL попробовать. Быстро работает и мало кода к
> EXE прибавляет. Жмет как ZIP.

Что мало кода, верно. Но когда я тестил, обратил внимание, что жмёт сильно похуже zlib"а. Однако


 
BMouradov   (2007-07-09 00:54) [10]

Попробовал - на том же файле выдал 660 Кб. Так что совсем не катит.


 
BMouradov   (2007-07-09 00:58) [11]

> KolZlib, Zlib, Z - 595Кб 1,4 сек 0,3 сек
> Bzip2 - 460Кб 0,3 сек 0,1 сек

Я извиняюсь, перепутал, по времени всё наоборот:

файл 2400Кб (метод, размер, упаковка, распакова, добавочный размер):

KolZlib, Zlib, Z - 595Кб 0,3 сек 0,1 сек +33Кб
Bzip2 - 460Кб 1,4 сек 0,3 сек +40Кб


 
ANTPro ©   (2007-07-10 14:08) [12]

LZMA, есть еще, если нужно хорошее сжатие (Уровень RAR). Но нужна dll(для сжатия) 96кб вроде. Если только распаковка тогда этот вариант всех уделает :)


 
Vladimir Kladov   (2007-07-10 15:48) [13]

Вообще-то самый компактный вариант это TCabFile (KOLadd). Практически не добавляет кода (пара Кб? Не проверял, но должно быть меньше). А жмёт очень прилично, иногда лучше zip, а иногда даже лучше rar"а.


 
Monty ©   (2007-07-11 00:45) [14]

Скорее всего TCabFile использует cabinet.dll

Я тестировал около года два-три назад сжатие zip, rar и cab"ом ... последний был всегда лучше zip"а и не уступал rar"у ... возможно сейчас что-то изменилось, но не сам формат "cab" ...



Страницы: 1 вся ветка

Текущий архив: 2008.02.24;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.028 c
2-1201555963
IntruderLab
2008-01-29 00:32
2008.02.24
TStringGrid


2-1201517761
Neo
2008-01-28 13:56
2008.02.24
Вопрос по SQL


15-1200760437
cartman315
2008-01-19 19:33
2008.02.24
Delphi и flash.ocx


15-1201008015
Vendict
2008-01-22 16:20
2008.02.24
Аудит в Windows


15-1200822319
Черный Шаман
2008-01-20 12:45
2008.02.24
И когда же этот CodeGear(ака Borland) сделают Delphi 64bit?