Модераторы: Poseidon, Snowy, bems, MetalFan
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Распаковка gzip на лету. 
:(
    Опции темы
Чучмек
Дата 31.5.2014, 00:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЭТ БИЛЭТ
**


Профиль
Группа: Участник
Сообщений: 841
Регистрация: 11.5.2008
Где: СССР

Репутация: 14
Всего: 41



Здравствуйте.
Загружаю по http сжатые данные (заголовок Content-Encoding:"gzip")
Необходимо распаковывать данные налету. По мере поступления, не дожидаясь конца загрузки.
Интересуют подходящие для этой цели библиотеки/компоненты.
Спасибо.

p.s. Позже, если это будет еще актуально, покажу свой велосипед.  



--------------------
умную мысль держи при себе, а дурной - поделись с другими 
PM MAIL   Вверх
Akella
Дата 31.5.2014, 10:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Творец
****


Профиль
Группа: Модератор
Сообщений: 18485
Регистрация: 14.5.2003
Где: Корусант

Репутация: 36
Всего: 329



А разве это возможно?
PM MAIL   Вверх
Alexeis
Дата 31.5.2014, 10:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Амеба
Group Icon


Профиль
Группа: Админ
Сообщений: 11743
Регистрация: 12.10.2005
Где: Зеленоград

Репутация: 109
Всего: 459



Ну если были запакованы фрагментами, по n байт, то по мере получения цельного пакета можно его распаковывать. Почему нет?


--------------------
Vit вечная память.

Обсуждение действий администрации форума производятся только в этом форуме

гениальность идеи состоит в том, что ее невозможно придумать
PM ICQ Skype   Вверх
PointerToNil
Дата 31.5.2014, 11:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата



*


Профиль
Группа: Участник
Сообщений: 108
Регистрация: 17.6.2013

Репутация: 3
Всего: 6



JCL/source/common/JclCompression.pas TJclGZIP{De}CompressionStream
PM MAIL   Вверх
drkot
Дата 7.6.2014, 20:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Ищущий
***


Профиль
Группа: Завсегдатай
Сообщений: 1042
Регистрация: 5.5.2006

Репутация: 5
Всего: 8



Готовых решений не встречал.
Но делать такое возможно. Хотя может потребовать код на уровне алгоритма кодирования.
Принцип прост: нужно развернуть цикл. То есть раскодировав первую порцию (произвольной длинны) необходимо запомнить состояние всех промежуточных переменных и рас кодирование следующей порции начать с сохраненного состояния.
На высоком уровне это выглядит так:
Код

s:= '';
Decoder.Init;
...
s:= s + Decoder.Do(Buffer, Count);
...
s:= s + Decoder.Final;

Более детально принцип можно изучить на основе компонентов SecureBlackbox.


--------------------
Ошибка не становится истиной по причине широкого распространения,
как и Истина не становится Ошибкой из-за того, что никто её не видит.
PM   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Delphi: Общие вопросы"
SnowyMetalFan
bemsPoseidon
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по Дельфи обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • 90% ответов на свои вопросы можно найти в DRKB (Delphi Russian Knowledge Base) - крупнейшем в рунете сборнике материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0751 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.