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

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

08.05.2008, 08:52. Показов 3660. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Сумматор с применением элементов трёх состояний.
Hrethgir 26.03.2026
Тут. https:/ / fips. ru/ EGD/ ab3c85c8-836d-4866-871b-c2f0c5d77fbc Первый документ красиво выглядит, но без схемы. Это конечно не даёт никаких плюсов автору, но тем не менее. . . всё может быть. . .
Автозаполнение реквизитов при создании документа
Maks 26.03.2026
Код из решения ниже размещается в модуле объекта документа, в процедуре "ПриСозданииНаСервере". Алгоритм проверки заполнения реализован для исключения перезаписи значения реквизита, которое может. . .
Команды "Заполнить" и "Очистить" на форме документа
Maks 26.03.2026
1. Команда формы "ЗаполнитьЗапчасти". На примере нетипового документа разработанного в конфигурации КА2. В качестве источника данных указан регистр накопления, в который записываются данные о. . .
Кому нужен AOT?
DevAlt 26.03.2026
Решил сделать простой ланчер Написал заготовку: dotnet new console --aot -o UrlHandler var items = args. Split(":"); var tag = items; var id = items; var executable = args;. . .
Отправка уведомления на почту при изменении наименования справочника
Maks 24.03.2026
Программная отправка письма электронной почты на примере изменения наименования типового справочника "Склады" в конфигурации БП3. Перед реализацией необходимо выполнить настройку системной учетной. . .
модель ЗдравоСохранения 5. Меньше увольнений- больше дохода!
anaschu 24.03.2026
Теперь система здравосохранения уменьшает количество увольнений. 9TO2GP2bpX4 a42b81fb172ffc12ca589c7898261ccb/ https:/ / rutube. ru/ video/ a42b81fb172ffc12ca589c7898261ccb/ Слева синяя линия -. . .
Midnight Chicago Blues
kumehtar 24.03.2026
Такой Midnight Chicago Blues, знаешь?. . Когда вечерние улицы становятся ночными, а ты не можешь уснуть. Ты идёшь в любимый старый бар, и бармен наливает тебе виски. Ты смотришь на пролетающие. . .
SDL3 для Desktop (MinGW): Вывод текста со шрифтом TTF с помощью библиотеки SDL3_ttf на Си и C++
8Observer8 24.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-text-sdl3-c. zip finish-text-sdl3-cpp. zip
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru