Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

вопрос по lzma sdk (7zip сжатие)

47K
31 августа 2009 года
Sashok123
18 / / 01.07.2009
Всем привет!
Потребовалось сжимать данные.
Скачал с офиц. сайта http://www.7-zip.org/sdk.html
Необходимо выполнять компрессию из памяти в память.
Насколько понял для этого предназначены функции
[FONT="Courier New"]
MY_STDAPI LzmaCompress(unsigned char *dest, size_t *destLen, const unsigned char *src, size_t srcLen,
unsigned char *outProps, size_t *outPropsSize, /* *outPropsSize must be = 5 */
int level, /* 0 <= level <= 9, default = 5 */
unsigned dictSize, /* default = (1 << 24) */
int lc, /* 0 <= lc <= 8, default = 3 */
int lp, /* 0 <= lp <= 4, default = 0 */
int pb, /* 0 <= pb <= 4, default = 2 */
int fb, /* 5 <= fb <= 273, default = 32 */
int numThreads /* 1 or 2, default = 2 */
);

MY_STDAPI LzmaUncompress(unsigned char *dest, size_t *destLen, const unsigned char *src, SizeT *srcLen,
const unsigned char *props, size_t propsSize);
[/FONT]

Вопрос такой: как узнать, сколько байт сжатых данных записалось в dest функцией LzmaCompress?
297
31 августа 2009 года
koodeer
1.2K / / 02.05.2009
Цитата: Sashok123
Вопрос такой: как узнать, сколько байт сжатых данных записалось в dest функцией LzmaCompress?


Дык из описания функции само собой вытекает, что нужный параметр будет в destLen.

47K
31 августа 2009 года
Sashok123
18 / / 01.07.2009
ну destLen это насколько я понимаю размер буфера куда пишем, т. е. максимальный размер полученного сжатого файла.
Ну а если я сжимаю файл 100 МБ, а destLen выставляю 200 МБ, тогда в чем прикол компрессора?
А заранее знать во сколько раз сожмется я тоже не могу
297
31 августа 2009 года
koodeer
1.2K / / 02.05.2009
В комментариях LzmaLib.h написано:
Out: destLen - processed output size
Processed - значит обработанный, преобразованный. Т. е. после работы функции здесь должен быть итоговый размер сжатых данных.
47K
31 августа 2009 года
Sashok123
18 / / 01.07.2009
Все, понял, спасибо, не учел, что туда указатель передается, как-то упустил из виду
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог