Форум программистов, компьютерный форум, киберфорум
C++ Builder
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
Хал
1

архивы gzip

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

Всем доброго дня!

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

Может есть какие-то бесплатные компоненты?
Да, забыл сказать, работаю в WinXP
__________________
Помощь в написании контрольных, курсовых и дипломных работ здесь
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
08.05.2008, 08:52
Ответы с готовыми решениями:

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

алгоритм GZIP
кто нибудь знает алгоритм сжатия GZIP? и как его на C++ реализовать?

GZip в Indy(XE2)
Подскажите,как использовать сжатие страниц в indy. Пишу так: IdHTTP1->HandleRedirects= true;...

GZIP распаковка веб страницы
Помогите перевести код с Delphi на С++ Вот сам код: HeadersToList(http.Headers); // полезная...

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

Можно в магазинах программерские диски пошукать. Может там будет компонент.
Но лучший вариант - освоить работу с сырцами сишными. На SourceForge'е найдешь сырцы - они должны быть с пометкой "Platform Independed". В прогу подоткнешь - останется найти описание нужных функций. Кстати тамже есть ссылки на сайт проекта - там можно найти инструкции. Смотри кнопки в заголовке страницы на SourceForge
0
Хал
12.05.2008, 13:25 3
Подключил 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, подскажите!
132 / 99 / 11
Регистрация: 21.11.2007
Сообщений: 544
14.05.2008, 14:10 4
Да уж... Это что?. Просто вытаскивание килобайтов из архива.. Надо бы найти функцию для распаковки файлов. Неужто там нет такой?
0
Хал
15.05.2008, 14:44 5
Похоже, что нет(( Насколько я понял, библиотека 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);
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
15.05.2008, 14:44

Как распаковать архивы (rar .. и тд)
День добрый. У меня вопросик а как можно распаковать другие архивы (rar .. и тд)? Если можно где...

Неправильное магическое число в заголовке GZip. Передача должна идти в поток GZip
Добрый день, пытаюсь написать свой мини-архиватор. Задача заключается в использовании только...

Как сделать фильтр на архивы? Т.е. вывести ссылки только на архивы в определённой папке.
Всем привет, есть страница которая выводит всё файлы с каталога и ссылки на них,но проблема в том...

GZip
Как с помощью GZip(GZipStream) создаваать программным способом архивные тома(в одном архиве...


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

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2022, CyberForum.ru