| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Delphi: Общие вопросы > Распаковка gzip на лету. |
| Автор: Чучмек 31.5.2014, 00:16 |
| Здравствуйте. Загружаю по http сжатые данные (заголовок Content-Encoding:"gzip") Необходимо распаковывать данные налету. По мере поступления, не дожидаясь конца загрузки. Интересуют подходящие для этой цели библиотеки/компоненты. Спасибо. p.s. Позже, если это будет еще актуально, покажу свой велосипед. |
| Автор: Akella 31.5.2014, 10:46 |
| А разве это возможно? |
| Автор: Alexeis 31.5.2014, 10:57 |
| Ну если были запакованы фрагментами, по n байт, то по мере получения цельного пакета можно его распаковывать. Почему нет? |
| Автор: PointerToNil 31.5.2014, 11:06 |
| JCL/source/common/JclCompression.pas TJclGZIP{De}CompressionStream |
| Автор: drkot 7.6.2014, 20:21 | ||
| Готовых решений не встречал. Но делать такое возможно. Хотя может потребовать код на уровне алгоритма кодирования. Принцип прост: нужно развернуть цикл. То есть раскодировав первую порцию (произвольной длинны) необходимо запомнить состояние всех промежуточных переменных и рас кодирование следующей порции начать с сохраненного состояния. На высоком уровне это выглядит так:
Более детально принцип можно изучить на основе компонентов SecureBlackbox. |