Работа с zip архивами29.10.2024, 02:49. Показов 19246. Ответов 282
Метки нет (Все метки)
Из всего, что попадалось по теме сжатия/распаковки ZIP наиболее интересные были примеры с использованием библиотеки Zlib. Оригинальная zlib использует cdecl экспорт функций, но есть реализация zlibwapi.dll, которую можно использовать в VB. Вот хороший пример использования. Там можно увидеть как сжть/распаковать массив байтов, но вот беда, очень сложно найти пример под VB с более обширным использованием, способной на большее, данной либы, которая не есть простая, там есть функции с использованием множества параметров констант и длинных структур, которые чтобы узнать наверное надо долго копатся в сишных заголочниках. Но HackerVlad в личной беседе говорил, что у него есть исходники с использованием данной библиотеки, поэтому любезно прошу его поделиться данной информацией.
Добавлено через 1 минуту кстати словосочетание zip-архивами в названии форум блочит почему-то )Добавлено через 6 минут На одном форуме есть хороший пример испльзования функций zlib для извлечения/распаковки отдельных файлов, там Кликните здесь для просмотра всего текста
обсуждался какой-то экзотический ЯП Clarion, но очень наглядно
Здесь подробное описание функций, структур и констант, однако я не нашел там unzGetCurrentFileInfo и т.п.
0
|
||||||
| 29.10.2024, 02:49 | |
|
Ответы с готовыми решениями:
282
Работа с ZIP-архивами - распаковка файлов Автоматизировать заполнение "Графика выполненных работ по месяцам" Задания из лаб.работ |
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 29.10.2024, 03:55 | |
|
Тема конечно очень интересная, и есть много разных способов для работы с ZIP архивами и много разных библиотек для этого. Так же стоит отметить, что формат ZIP это свободно описанный и свободно документированный формат, можно даже и самому написать распаковщик, при желании, но потратить придётся конечно очень много времени, даже зная все описания структур и основной алгоритм, который свободно описан.
Я искал информацию в Интернете, для интереса и много чего находил, так же понимаю что бывает сложно найти что-то для себя, тем более на VB6. Добавлено через 4 минуты Итак предлагаемая тобой тема это как работать с архивами ZIP используя библиотеку zlibwapi.dll на VB6. Если мы сейчас будем рассматривать именно zlibwapi.dll то нужно знать сначала, что именно мы хотим от этой библиотеки. И нужно посмотреть а есть ли там вообще такая возможность как распаковка в байтовый массив, как ты хочешь.
1
|
|
| 29.10.2024, 04:04 [ТС] | |
|
Архивация сложная тема, я находил тоже пример реализации сжатия Хоффмана, там довольно не просто все, похоже на шифрование причем символами переменной битовой длины. При чем там символы, которые попадаются статистически чаще в тексте должны кодироваться символами меньшей битовой длины. Это только Хоффман, а перед этим должно как-то сжиматься в лемпель зип и еще вопрос, как надо записывать структуру файлов в архиве. Короче сильно много вопросов )
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 29.10.2024, 04:07 | ||
|
0
|
||
| 29.10.2024, 04:13 [ТС] | |
|
Пишу с телефона, потому без цитирования. Да именно zip, это самый популярный формат много где используется. Я смотрел экспорты zlibwapi там все есть, включая упомянутые функции, вопрос, только как из использовать
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 29.10.2024, 04:17 | |
|
Вот здесь у меня в этой теме есть очень простой пример как упаковать и распаковать буфер на лету Функция RtlDecompressBuffer иногда обманывает и возвращает ложный успех вместо алгоритма Хафмана можно просто использовать функции RtlCompressBuffer и RtlDecompressBuffer . Но я не знаю почему тебе нужен именно ZIP.
2
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 29.10.2024, 04:23 | |
|
Здесь есть у меня пример по работе с библиотекой zlibwapi.dll на VB6. Но там по моему только упаковка, надо посмотреть ещё будет. Зато есть все объявления и структуры.
3
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||
| 29.10.2024, 04:39 | ||
|
2
|
||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 29.10.2024, 04:57 | |
|
Я иногда жалел кстати о том, что в Microsoft'е не сделали встроенных API-функций для ZIP чтобы встроенная уже DLL-библиотека была в Windows. Или в том же самом ntdll.dll можно было бы и добавить функций для компрессии и декомпресии буфера ZIP. Но они не захотели. Хотя shell32 же как-то всё же работает с ZIP...
Добавлено через 10 минут Кстати вот же пример на иностранном форуме для работы с твоей библиотекой: https://www.vbforums.com/showt... odZlib-bas Скорее всего тебе просто нужно воспользоваться функцией GzipDecompress
1
|
|
| 29.10.2024, 05:06 [ТС] | |
|
Там есть своя зип-либа, только реализована она как-то по буржуйски. Но я видел пример у fafalone, с испоизованием специальной tlb
Добавлено через 5 минут GzipDecompress там только исп-ся compress/uncompress, но тоже интересно, если нужен именно gzip
0
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 29.10.2024, 06:20 | |
|
Твоя задача какая вообще? Распаковать ZIP архив в байтовый массив? Это подразумевает что в ZIP будет только один файл?
Добавлено через 58 минут Я нашёл класс написанный на VB6 с нуля для полного управления ZIP архивами фактически исходный код любой библиотеки для работы с ZIP только ещё круче, там 3 тысячи строк кода, но вся эта гениальность полностью исключает зависимости от каких либо DLL мало того этот чувак распространяет свои труды свободно как есть (бесплатно). Добавлено через 13 минут Вот он этот гений, все права принадлежат ему если что https://github.com/wqweto там же на ГитХабе и все его труды. Всё о чём ты мечтал там есть.
2
|
|
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
||||||
| 29.10.2024, 06:52 | ||||||
Сообщение было отмечено testuser2 как решение
Решение
И я проверил - его код работает. Абсолютно гениальный код конечно.
Потом просто пишешь например так я проверил работает:
Добавлено через 6 минут Ну вот и всё. Зачем тогда мучиться с библиотекой zlibwapi.dll если в интернете нету примеров для распаковки ZIP-файлов этой библиотекой? Есть пример только упаковки почему-то файлов. А примера распаковки нет. Про zlibwapi.dll можно забыть тогда я считаю, раз есть этот класс от супер-гения где не нужны никакие зависимости.
1
|
||||||
| 29.10.2024, 07:37 [ТС] | ||
|
Я, кстати не знал, что у wqweto можно считывать в байтовый массив.
0
|
||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|||
| 29.10.2024, 15:49 | |||
|
Добавлено через 2 минуты Добавлено через 3 минуты Можно перелапатить весь вбфорумс и киберфорум и не найти ответа вообще про распаковку ZIP.
0
|
|||
| 29.10.2024, 16:48 [ТС] | |||||||
|
Чтение, думаю, должно быть таким: unzOpen, UnzOpenCurrentFile, unzReadCurrentFile
0
|
|||||||
|
Испарился
1742 / 638 / 45
Регистрация: 10.09.2021
Сообщений: 2,769
|
|
| 29.10.2024, 17:14 | |
Сообщение было отмечено testuser2 как решение
Решение
testuser2, кажется мне уже дали ответ на иностранном форуме: https://www.vbforums.com/showt... ibwapi-dll
Добавлено через 2 минуты Надо будет посмотреть что там за класс у них, но я вижу что они не используют почему-то описанную тобой последовательность функций там просто Uncompress скорее всего... Странно, надо будет посмотреть...
1
|
|
| 29.10.2024, 17:14 | |
|
Помогаю со студенческими работами здесь
20
access и zip архив Как распаковать ZIP-файл в 7z?
Замена файла в zip архиве при совпадении имени Как сделать архив zip? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
| Опции темы | |
|
|
Новые блоги и статьи
|
|||
|
Валидация и контроль данных табличной части документа перед записью
Maks 22.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа, разработанного в КА2.
Задача: контроль и валидация данных табличной части документа перед записью с учетом регламента компании. . .
|
Отчёт о затраченных материалах за определенный период с макетом печатной формы
Maks 21.04.2026
Отчёт из решения ниже размещён в конфигурации КА2.
Задача: разработка отчёта по затраченным материалам за определённый период, с возможностью вывода печатной формы отчёта с шапкой и подвалом.
В. . .
|
Отчёт о спецтехнике находящейся в ремонте
Maks 20.04.2026
Отчёт из решения ниже размещен в конфигурации КА2.
Задача: отобразить спецтехнику, которая на данный момент находится в ремонте.
Есть нетиповой документ "Заявка на ремонт спецтехники" который. . .
|
Памятка для бота и "визитка" для читателей "Semantic Universe Layer (Слой семантической вселенной)"
Hrethgir 19.04.2026
Сгенерировано для краткого описания по случаю сборки и компиляции скелета серверного приложения. И пусть после этого скажут, что статьи сгенерированные AI - туфта и не интересно. И это не реклама -. . .
|
|
Запрет удаления строк ТЧ документа при определённом условии
Maks 19.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "Аккумуляторы", разработанного в конфигурации КА2. У данного документа есть ТЧ, в которой в зависимости от прав доступа. . .
|
Модель заражения группы наркоманов
alhaos 17.04.2026
Условия задачи сформулированы тут
Суть:
- Группа наркоманов из 10 человек.
- Только один инфицирован ВИЧ.
- Колются одной иглой.
- Колются раз в день.
- Колются последовательно через. . .
|
Мысли в слух. Про "навсегда".
kumehtar 16.04.2026
Подумалось тут, что наверное очень глупо использовать во всяких своих установках понятие "навсегда". Это очень сильное понятие, и я только начинаю понимать край его смысла, не смотря на то что давно. . .
|
My Business CRM
MaGz GoLd 16.04.2026
Всем привет, недавно возникла потребность создать CRM, для личных нужд. Собственно программа предоставляет из себя базу данных клиентов, в которой можно фиксировать звонки, стадии сделки, а также. . .
|