| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > архивы gzip |
| Автор: Хал 8.5.2008, 08:02 |
| Всем доброго дня! Подскажите, пожалуйста, как из C++ Builder 2006 распаковать gzip-архив (файл .gz)! Компоненты ZipForge? VCLUnZip и TZipBuilder его не берут. С помощью ZipTV TUnGZip получилось, но он платный )) Может есть какие-то бесплатные компоненты? Да, забыл сказать, работаю в WinXP |
| Автор: xvr 8.5.2008, 10:13 | ||
Бери библиотеку zlib (www.zlib.org), она поддерживает (IMHO все перечисленные компоненты используют именно ее) |
| Автор: Хал 12.5.2008, 12:29 |
| Подключил zlib и юзаю gzread. Получился такой вариант: const int KILOB = 1024; char cb[KILOB]; AnsiString arch = "C:\\111.xml.gz"; FILE* outfile = fopen("C:\\newfile.xml", "wb"); gzFile gfile = gzopen (arch.c_str(), "rb"); int len = 0; do { len = gzread (gfile, cb, KILOB); if(len < KILOB) cb[len]=0; fprintf(outfile, "%s" , cb); } while(len == KILOB); fclose(outfile); gzclose(gfile); Напомню, задача просто вытащить файл из .gz архива. Может можно проще, не слишком коряво? |
| Автор: ksili 12.5.2008, 12:43 |
| А почему блоками распаковываете? Сразу целиком не получилось? |
| Автор: Хал 12.5.2008, 13:23 |
| Добавлено @ 13:28 Не понял вопроса... это как - целиком? в данном случае? |
| Автор: xvr 12.5.2008, 13:38 | ||||||
Почти нормально, рекомендую заменить
на
|