Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "KOL";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Вниз

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 вся ветка

Форум: "KOL";
Текущий архив: 2008.02.24;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.47 MB
Время: 0.043 c
15-1201277000
Petr V. Abramov
2008-01-25 19:03
2008.02.24
TWO_PHASE_COMMIT в шлюзе Oracle -> MSSQL


15-1201089725
Petr V. Abramov
2008-01-23 15:02
2008.02.24
вот ведь народ настырный :)


15-1200923748
Dmitry S
2008-01-21 16:55
2008.02.24
Печать с помощью mshtml.dll,PrintHTML без диалога


15-1201252151
tolyan
2008-01-25 12:09
2008.02.24
загрдиск


6-1180002451
FireMan_Alexey
2007-05-24 14:27
2008.02.24
snova Proxy!





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский