Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Qt и работа с архивами 
:(
    Опции темы
bronislav
  Дата 29.1.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Как работать с архивами (zip, gzip, ...) в Qt?




--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
SABROG
Дата 29.1.2008, 16:46 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Цитата(bronislav @ 29.1.2008,  16:20)
Как работать с архивами (zip, gzip, ...) в Qt?

Есть методы qCompress/qUncompress, в основе лежит zlib. Найдешь инфу как распаковать zip файлы через zlib - найдешь ответ на свой вопрос, иначе использование сторонних библиотек.


--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
Любитель
Дата 29.1.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



Если именно с архивами - то встроенных средств нет.


--------------------
PM MAIL ICQ Skype   Вверх
bronislav
Дата 29.1.2008, 16:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(SABROG @ 29.1.2008,  16:46)
Цитата(bronislav @ 29.1.2008,  16:20)
Как работать с архивами (zip, gzip, ...) в Qt?

Есть методы qCompress/qUncompress, в основе лежит zlib. Найдешь инфу как распаковать zip файлы через zlib - найдешь ответ на свой вопрос, иначе использование сторонних библиотек.

Как важно дать иногда толчок в правильном направлении. Спасибо. Счас разбираюсь


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Elfebet
Дата 29.1.2008, 16:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 5
Всего: 14



можна заюзать сторонний опенсоурс LiteZip/LiteUnZip (не зависимо какая платформа, это обычный с++)

http://www.artpol-software.com/Download.aspx

Это сообщение отредактировал(а) Elfebet - 29.1.2008, 17:06


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
SABROG
Дата 29.1.2008, 17:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Hacker
****


Профиль
Группа: Завсегдатай
Сообщений: 2481
Регистрация: 18.9.2006

Репутация: 81
Всего: 91



Хотел еще предложить libzip, но мне не удалось его собрать под mingw, какой-то косяк с libtoolом:

Цитата

libtool: link: cannot build libtool library `libzip.la' from non-libtool objects on this host: mkstemp.o






--------------------
Национальная группа Russian Federation на QtCentre.
PM MAIL   Вверх
bronislav
Дата 29.1.2008, 17:57 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(Elfebet @ 29.1.2008,  16:56)
можна заюзать сторонний опенсоурс LiteZip/LiteUnZip (не зависимо какая платформа, это обычный с++)

странно.. при компиляции попросил afx.h и afxwin.h

это вообщето для MFC, зачем они там? О_о

вот  лог компиляции

Код

------ Build started: Project: ZipArchive, Configuration: Debug DLL Win32 ------
Compiling...
cl : Command line warning D9035 : option 'Wp64' has been deprecated and will be removed in a future release
BaseLibCompressor.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
DeflateCompressor.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
DirEnumerator.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
FileFilter.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
Wildcard.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipArchive.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipAutoBuffer.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipCentralDir.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipCompatibility.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipCompressor.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipCrc32Cryptograph.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipCryptograph.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipException.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipExtraData.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipExtraField.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipFile_mfc.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipFileHeader.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipMemFile.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipPathComponent_win.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipPlatform_win.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
Generating Code...
Compiling...
ZipPlatformComm.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipStorage.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
ZipString.cpp
d:\lib\zip\ziparchive_src\ziparchive\std_mfc.h(33) : fatal error C1083: Cannot open include file: 'afx.h': No such file or directory
Generating Code...
Creating browse information file...
Microsoft Browse Information Maintenance Utility Version 9.00.21022
Copyright (C) Microsoft Corporation. All rights reserved.
BSCMAKE: error BK1506 : cannot open file '.\Debug DLL\BaseLibCompressor.sbr': No such file or directory
Build log was saved at "file://d:\lib\zip\ziparchive_src\ZipArchive\Debug DLL\BuildLog.htm"
ZipArchive - 24 error(s), 1 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Elfebet
Дата 29.1.2008, 18:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 5
Всего: 14



Ну значит ZipArchive юзает функции mfc, если компилить в студии, ну если тебе ето беспокоит там еще есть файлы проекта для минжв, борлана, линуха (попробуй другим компилятором)

Это сообщение отредактировал(а) Elfebet - 29.1.2008, 18:14


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
bronislav
Дата 29.1.2008, 18:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(Elfebet @ 29.1.2008,  18:10)
Ну ZipArchive юзает функции mfc для windows  smile

Все  уже разобрался  smile 

to SABROG
а как из QByteArray вытащить файлы?

у меня в архиве 3 файла, как мне получить их содержимое?


--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
bronislav
Дата 30.1.2008, 12:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(Elfebet @ 29.1.2008,  18:10)
Ну значит ZipArchive юзает функции mfc, если компилить в студии, ну если тебе ето беспокоит там еще есть файлы проекта для минжв, борлана, линуха (попробуй другим компилятором)

Меня это не беспокоит, но дело в том, что я поставил Platform SDK, для того чтобы появились afx.h и иже с ним, но опять пошли ошибки непонятного происхождения. Буду разбираться





--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Любитель
Дата 30.1.2008, 13:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Программист-романтик
****


Профиль
Группа: Комодератор
Сообщений: 3645
Регистрация: 21.5.2005
Где: Воронеж

Репутация: 16
Всего: 92



В PSDK MFC не входит.


--------------------
PM MAIL ICQ Skype   Вверх
bronislav
Дата 30.1.2008, 13:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(Любитель @ 30.1.2008,  13:10)
В PSDK MFC не входит.

Наверно в этом все дело.
Выбрал Debug STL и все прекрасно собралось

теперь при указании в .pro файле библиотеки ZipArchive.lib

Код

TEMPLATE = app
TARGET = FinReporter

CONFIG += console

Qt += xml

UI_DIR = src\uic
MOC_DIR = src\moc

SOURCES = src\main.cpp src\mainwindow.cpp src\dbase.cpp
HEADERS = src\mainwindow.h src\dbase.h
FORMS    = src\forms\mainwindow.ui
LIBS   += "src\lib\zip\Debug STL\ZipArchive.lib"



получается такие ошибки 
Код

------ Build started: Project: FinReporter, Configuration: Debug Win32 ------
Performing Makefile project actions
Microsoft (R) Program Maintenance Utility   Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
 nmake -f Makefile.Debug
Microsoft (R) Program Maintenance Utility   Version 7.00.8882
Copyright (C) Microsoft Corp 1988-2000. All rights reserved.
 link /LIBPATH:"d:\lib\qt-4.3.3\lib" /NOLOGO /DEBUG /SUBSYSTEM:CONSOLE /MANIFESTFILE:"debug\FinReporter.intermediate.manifest" /OUT:debug\FinReporter.exe @D:\TEMP\nm4FD.tmp 
dbase.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CZipArchive::ExtractFile(unsigned short,unsigned short const *,bool,unsigned short const *,unsigned long)" (?ExtractFile@CZipArchive@@QAE_NGPBG_N0K@Z) referenced in function "public: void __thiscall FinDataBase::newBase(class QString)" (?newBase@FinDataBase@@QAEXVQString@@@Z)
dbase.obj : error LNK2019: unresolved external symbol "public: bool __thiscall CZipArchive::Open(unsigned short const *,int,unsigned long)" (?Open@CZipArchive@@QAE_NPBGHK@Z) referenced in function "public: void __thiscall FinDataBase::newBase(class QString)" (?newBase@FinDataBase@@QAEXVQString@@@Z)
debug\FinReporter.exe : fatal error LNK1120: 2 unresolved externals
NMAKE : fatal error U1077: 'link' : return code '0x460'
Stop.
NMAKE : fatal error U1077: 'C:\lib\platform_sdk\Bin\nmake.exe' : return code '0x2'
Stop.
Project : error PRJ0019: A tool returned an error code from "Performing Makefile project actions"
Build log was saved at "file://d:\FILE\projects\finreporter\Debug\BuildLog.htm"
FinReporter - 6 error(s), 0 warning(s)
========== Build: 0 succeeded, 1 failed, 0 up-to-date, 0 skipped ==========



--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Elfebet
Дата 30.1.2008, 15:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 5
Всего: 14



ну если ты это все дело делаеш под виндой и в студии, достаточно скомпилить ZipArchive, полученую длл кинь рядом с проектом, в свойствах проектах пропиши ее (в студии проперти, но не в .pro), добавь в свой проект header файла с описаными функциями "ZipArchive.h"... вроде все...
или
юзай длл через QLibrary, а вот насчет чтобы статически прилинковать - хз.

Это сообщение отредактировал(а) Elfebet - 30.1.2008, 15:38


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
bronislav
Дата 31.1.2008, 12:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 334
Регистрация: 29.1.2008
Где: Украина::Донецк

Репутация: нет
Всего: 3



Цитата(Elfebet @ 30.1.2008,  15:35)
ну если ты это все дело делаеш под виндой и в студии, достаточно скомпилить ZipArchive, полученую длл кинь рядом с проектом, в свойствах проектах пропиши ее (в студии проперти, но не в .pro), добавь в свой проект header файла с описаными функциями "ZipArchive.h"... вроде все...
или
юзай длл через QLibrary, а вот насчет чтобы статически прилинковать - хз.

Для того, что бы скомпилировать ZipArchive как DLL необходима Visual Studio не Express т.к. mfc42d.lib для x32 не идет в Express и Platform SDK.

Если кто нибудь может выложить уже собраный ZipArchive как DLL буду благодарен, ибо не хочу ставить ломаную VC++ Professianal.




--------------------
user posted image
иногда проще и быстрей обойти лужу, даже если кажется что она мелкая и путь напрямик короче - ведь она может скрывать открытый люк (с) mes
PM MAIL   Вверх
Elfebet
Дата 31.1.2008, 15:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 545
Регистрация: 15.5.2006
Где: Украина. Запорожь е.

Репутация: 5
Всего: 14



Цитата

Если кто нибудь может выложить уже собраный ZipArchive как DLL буду благодарен, ибо не хочу ставить ломаную VC++ Professianal.


Присоединённый файл ( Кол-во скачиваний: 23 )
Присоединённый файл  ZipArchive.rar 73,33 Kb


--------------------
Программист не должен всё знать... он должен знать где можно посмотреть
PM MAIL ICQ GTalk   Вверх
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С/С++: Кроссплатформенное программирование, QT/Gtk+/wxWidgets"
JackYF
Любитель
  • В заголовке темы в квадратных скобках обозначьте используемую вами библиотеку, например: [QT],[GTK],[wx].
  • Если вопрос актуален только для некоторой версии библиотеки, либо, если вы пользуетесь не самой последней версией, укажите это. Например: [QT4], [GTK2].
  • Все начинающие изучать Qt - не забудьте зайти сюда.
  • Проставьте несколько ключевых слов темы, чтобы её можно было легче найти.
  • В вопросе укажите полную версию версию библиотеки, а также все дополнительные используемые программные пакеты.
  • Не забывайте пользоваться кнопкой "Код".
  • Телепатов на форуме нет! Задавайте чёткий, конкретный и полный вопрос. Указывайте полностью ошибки компилятора и компоновщика.
  • Новое сообщение должно иметь прямое отношение к тематике этого раздела. Флуд, флейм, оффтопик запрещены.
  • Категорически запрещается обсуждение вареза, "кряков", взлома программ и т.д.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, JackYF, Любитель.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | С/С++: Кроссплатформенное программирование, Qt/Gtk+/wxWidgets | Следующая тема »


 




[ Время генерации скрипта: 0.0555 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.