GZIP v1.2
Компонент позволяет сжимать/распаковывать строки, потоки и файлы в формате GZIP.
Инструкция по установке - в архиве
Компонент создан по заказу пользователя Gunnman
СКАЧАТЬ
Редактировалось 6 раз(а), последний 2025-03-22 19:09:52
Этот топик читают: Гость
Ответов: 4652
Рейтинг: 760
|
|||
карма: 26 |
| ||
Голосовали: | Nickname, Konst, MAV, Ales, strannik_nebes |
Ответов: 4652
Рейтинг: 760
|
|||
Если кому-то интересно, с компонентом идёт модифицированный файл KolZLib.pas для работы стандартного компилятора FPC через официальную zlib.dll (а не ту, что лежит в папке HiAsm). Это позволяет использовать один и тот же код на всех компиляторах (для FPC - нужна zlib.dll).
Как пример: из файла hiZLIB.pas нужно выбросить код, специфичный для FPC, и запустить демо схему из справки по компоненту ZLIB. Таким образом, если компонент PNG не работал на FPC только по причине KolZLib.pas, то, думаю, его можно легко поправить. Компонент GZIP вообще не требует никакой доработки для работы с FPC. Редактировалось 2 раз(а), последний 2025-03-22 19:12:49 |
|||
карма: 26 |
| ||
Голосовали: | Konst |
Ответов: 2
Рейтинг: 0
|
|||
Доброго времени суток, заранее извиняюсь за поднятие старой темы, но вынудила необходимость компресси в gzip, отсюда и просьба, возможно ли перезалить архивчик, поскольку по ссылке он более не доступен. Заранее спасибо
|
|||
карма: 0 |
|
Ответов: 4652
Рейтинг: 760
|
|||
Сделано.
|
|||
карма: 26 |
|
Ответов: 2
Рейтинг: 0
|
|||
Еще раз большое спасибо.
|
|||
карма: 0 |
|
Ответов: 655
Рейтинг: 18
|
|||
Netspirit, столкнулся с проблемой: одни строки жмет\разжимает нормально другие нет.
Вот схема:
Редактировалось 6 раз(а), последний 2017-04-14 22:15:43 |
|||
карма: 0 |
|
Ответов: 4652
Рейтинг: 760
|
|||
Поправил. Пробуй.
|
|||
карма: 26 |
|
Ответов: 655
Рейтинг: 18
|
|||
Netspirit, пока полет нормальный! Спасибо! В чем проблема-то была?
|
|||
карма: 0 |
|
Ответов: 4652
Рейтинг: 760
|
|||
В процедуре распаковки не был учтен один пограничный случай (ZLib вместо кода операции Z_STREAM_END иногда при успешной распаковке выдаёт Z_OK).
|
|||
карма: 26 |
|
Ответов: 632
Рейтинг: 4
|
|||
Рассчитывал, что этот компонент будет лучше ZLIB. Оказалось хуже...
![]() ![]() --- Добавлено в 2017-12-05 19:07:46 Что бы улучшать на один уровень или выше компонента ZLIB. Надо узнать секрет успеха, его алгоритма. Редактировалось 1 раз(а), последний 2017-12-05 19:07:46 |
|||
карма: 0 |
|
Ответов: 4652
Рейтинг: 760
|
|||
Схему давай.
Редактировалось 1 раз(а), последний 2017-12-06 11:57:04 |
|||
карма: 26 |
|
Ответов: 632
Рейтинг: 4
|
|||
|
|||
карма: 0 |
|
Ответов: 4652
Рейтинг: 760
|
|||
Схема слишком муторная. Потеря скорости происходит при конвертации StreamToStr для подачи на GZIP, тогда как у него есть отдельный метод doCompressStream. А у ZLIB - нету метода для сжатия строк, поэтому "улучшать на один уровень или выше компонента ZLIB" не канает - компонент ZLIB на "один уровень" (или больше) ниже, чем мой GZIP.
Вот корректная схема теста быстродействия: ![]()
Для корректных результатов размер файла должен быть достаточно большим, чтобы компрессия занимала хотя бы 10 секунд. Примерно хватит объёма от 30 Мб. Как и следовало ожидать, быстродействие обоих компонентов одинаковое (на одинаковом уровне компрессии), поскольку используется один и тот же алгоритм. |
|||
карма: 26 |
|
Ответов: 704
Рейтинг: 7
|
|||
Netspirit, некоторые компоненты от Вас просто палочки-выручалочки. Спасибо!
|
|||
карма: 0 |
|
Ответов: 4652
Рейтинг: 760
|
|||
Пользуйтесь в удовольствие!
|
|||
карма: 26 |
|