Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/18: Рейтинг темы: голосов - 18, средняя оценка - 4.78
Хал

Как из C++ Builder 2006 распаковать gzip-архив?

08.05.2008, 08:52. Показов 3640. Ответов 4
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Всем доброго дня!

Подскажите, пожалуйста, как из C++ Builder 2006 распаковать gzip-архив (файл .gz)!
Компоненты ZipForge? VCLUnZip и TZipBuilder его не берут.
С помощью ZipTV TUnGZip получилось, но он платный ))

Может есть какие-то бесплатные компоненты?
Да, забыл сказать, работаю в WinXP
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
08.05.2008, 08:52
Ответы с готовыми решениями:

можно ли в С++ Builder 2006 писать программы на С++ Builder 6?
подскажите, пожалуйста... если программка написана на С++ Builder 2006, могу ли я перевести проект...

Как программно распаковать архив ZIP
Приветствую всех. :) Возникла необходимость программной распаковки архива zip. Подскажите в...

Как распаковать архив ZLib C++
Даже в документации офф. сайта, и в и примере ничего не понятно. Надо написать класс для распаковки...

4
 Аватар для dioxidin
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
12.05.2008, 10:58
Надо рыть в Линуксовом сообществе. Есть библиотеки линуксовые и к ним сырцы. Попробуй поискать на SourceForge.net по слову ungzip или что-нить наподобие. Возможно там и для виндов найдешь библиотеку. Компоненту для Билдера там не найдешь. Такие компоненты наверняка будут платные, если только какой энтузиаст не сбацал чего.

Можно в магазинах программерские диски пошукать. Может там будет компонент.
Но лучший вариант - освоить работу с сырцами сишными. На SourceForge'е найдешь сырцы - они должны быть с пометкой "Platform Independed". В прогу подоткнешь - останется найти описание нужных функций. Кстати тамже есть ссылки на сайт проекта - там можно найти инструкции. Смотри кнопки в заголовке страницы на SourceForge
0
Хал
12.05.2008, 13:25
Подключил zlib и юзаю gzread. Получился такой вариант:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
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 архива. Может можно проще, не слишком коряво? Знатоки zlib, подскажите!
 Аватар для dioxidin
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
14.05.2008, 14:10
Да уж... Это что?. Просто вытаскивание килобайтов из архива.. Надо бы найти функцию для распаковки файлов. Неужто там нет такой?
0
Хал
15.05.2008, 14:44
Похоже, что нет(( Насколько я понял, библиотека zlib от GNU не оперирует понятием архива - речь идет о работе с данными в формате gzip.
Это потоково-ориентированные функции...
Ну а компоненты, как говорилось уже - платные.

Вот список основных функций из zlib(кому интересно)
int compress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
int compress2 (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen, int level);
int uncompress (Bytef *dest, uLongf *destLen, const Bytef *source, uLong sourceLen);
typedef voidp gzFile;
gzFile gzopen (const char *path, const char *mode);
gzFile gzdopen (int fd, const char *mode);
int gzsetparams (gzFile file, int level, int strategy);
int gzread (gzFile file, voidp buf, unsigned len);
int gzwrite (gzFile file, const voidp buf, unsigned len);
int VA gzprintf (gzFile file, const char *format, ...);
int gzputs (gzFile file, const char *s);
char * gzgets (gzFile file, char *buf, int len);
int gzputc (gzFile file, int c);
int gzgetc (gzFile file);
int gzflush (gzFile file, int flush);
z_off_t gzseek (gzFile file, z_off_t offset, int whence);
z_off_t gztell (gzFile file);
int gzrewind (gzFile file);
int gzeof (gzFile file);
int gzclose (gzFile file);
const char * gzerror (gzFile file, int *errnum);
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
15.05.2008, 14:44
Помогаю со студенческими работами здесь

Распаковать cab архив?
Как можно распаковать cab архив программно в С++?

Распаковать zip архив
Нужно распаковать все файлы из zip архива (или tar.gz). Подключил zlib. zip архив находится рядом...

Распаковать архив программно
Вобщем заработало вот так: ZipForge1-&gt;FileName =&quot;c:\\test.rar&quot;; ZipForge1-&gt;OpenArchive();...

GZIP c++ builder
Подскажите,как установить ZLIB.

Как делать полный исполняемый .exe файл в Borland C++ Builder 2006?
Ребята, всем привет! Очень важный вопрос! Как делать полный исполняемый .exe файл в C++ Builder?...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
Загрузка PNG с альфа-каналом на SDL3 для Android: с помощью SDL3_image
8Observer8 27.01.2026
Содержание блога SDL3_image - это библиотека для загрузки и работы с изображениями. Эта пошаговая инструкция покажет, как загрузить и вывести на экран смартфона картинку с альфа-каналом, то есть с. . .
влияние грибов на сукцессию
anaschu 26.01.2026
Бифуркационные изменения массы гриба происходят тогда, когда мы уменьшаем массу компоста в 10 раз, а скорость прироста биомассы уменьшаем в три раза. Скорость прироста биомассы может уменьшаться за. . .
Воспроизведение звукового файла с помощью SDL3_mixer при касании экрана Android
8Observer8 26.01.2026
Содержание блога SDL3_mixer - это библиотека я для воспроизведения аудио. В отличие от инструкции по добавлению текста код по проигрыванию звука уже содержится в шаблоне примера. Нужно только. . .
Установка Android SDK, NDK, JDK, CMake и т.д.
8Observer8 25.01.2026
Содержание блога Перейдите по ссылке: https:/ / developer. android. com/ studio и в самом низу страницы кликните по архиву "commandlinetools-win-xxxxxx_latest. zip" Извлеките архив и вы увидите. . .
Вывод текста со шрифтом TTF на Android с помощью библиотеки SDL3_ttf
8Observer8 25.01.2026
Содержание блога Если у вас не установлены Android SDK, NDK, JDK, и т. д. то сделайте это по следующей инструкции: Установка Android SDK, NDK, JDK, CMake и т. д. Сборка примера Скачайте. . .
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru