Работа с zip архивами29.10.2024, 02:49. Показов 22344. Ответов 283
Метки нет (Все метки)
Из всего, что попадалось по теме сжатия/распаковки ZIP наиболее интересные были примеры с использованием библиотеки Zlib. Оригинальная zlib использует cdecl экспорт функций, но есть реализация zlibwapi.dll, которую можно использовать в VB. Вот хороший пример использования. Там можно увидеть как сжть/распаковать массив байтов, но вот беда, очень сложно найти пример под VB с более обширным использованием, способной на большее, данной либы, которая не есть простая, там есть функции с использованием множества параметров констант и длинных структур, которые чтобы узнать наверное надо долго копатся в сишных заголочниках. Но HackerVlad в личной беседе говорил, что у него есть исходники с использованием данной библиотеки, поэтому любезно прошу его поделиться данной информацией.
Добавлено через 1 минуту кстати словосочетание zip-архивами в названии форум блочит почему-то )Добавлено через 6 минут На одном форуме есть хороший пример испльзования функций zlib для извлечения/распаковки отдельных файлов, там Кликните здесь для просмотра всего текста
обсуждался какой-то экзотический ЯП Clarion, но очень наглядно
Здесь подробное описание функций, структур и констант, однако я не нашел там unzGetCurrentFileInfo и т.п.
0
|
||||||
| 29.10.2024, 02:49 | |
|
Ответы с готовыми решениями:
283
Работа с ZIP-архивами - распаковка файлов Автоматизировать заполнение "Графика выполненных работ по месяцам" Задания из лаб.работ |
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
||||||
| 03.11.2024, 20:16 | ||||||
|
Итак новый вариант создания библиотеки вторая версия
Форма:
Размер выходного EXE при этом всего 150 Кб! Я думаю, что это самый лучший и самый оптимальный вариант будет!
1
|
||||||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 03.11.2024, 20:38 | |
|
Мои 150Кб против 278Кб EXE-файла по изначально предложенному варианту от tetstuser2.
Добавлено через 51 секунду И это я ещё брал за основу библиотеку именно от testuser2 моя так меньше места занимает вообще на целых 100Кб. Добавлено через 1 минуту Но технологию base64 мне конечно стоит изучить всё равно. Можно будет вместо ресурсов иногда и строками base64 баловаться. Например воспроизовдить вавки или описывать регионы для нестандартных форм. Добавлено через 12 минут А я вот ещё думаю, может надо было base64 данные в ресурсы зашивать? Вместо LZNT1 компрессии DLL-файла? Или base64 данные, упакованные LZNT1 компрессией? Если эта компрессия помогала бы... Добавлено через 1 минуту Я ведь так и не изучил ещё технологию base64 и как там testuser2 упаковывал эти данные... Добавлено через 2 минуты testuser2, у тебя ведь получилось на выходе 126056 base64 данные каким-то чудом упакованные? А у меня 125047 на выходе получились данные упакованные, с помощью LZNT1, почти одинаково... Добавлено через 55 секунд testuser2, но каким чудом ты упаковал данные? что у тебя получилось 126056 на выходе? как, каким образом, и при помощи какого механизма ты этого достиг? Добавлено через 25 секунд И base64 строки бывают разные что ли, упакованные и не упакованные?
0
|
|
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 04.11.2024, 01:43 | |
|
locm, и как ты собираешься это сделать? и как вызывать функции?
0
|
|
|
|
|||||||
| 04.11.2024, 02:18 | |||||||
|
Для примера загрузка из памяти zlibwapi.dll и вызов из нее функции zlibVersion().
2
|
|||||||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
||
| 04.11.2024, 04:38 | ||
|
locm, если честно, я не знал вообще что так можно
Добавлено через 11 секунд это очень интересно Добавлено через 10 минут Поэтому я не понимаю Добавлено через 2 минуты Я не знаю как устроен ваш PureBasic но в ресурсах исполняемого файла MemDLL.exe нет никакого DLL вообще. Тогда как он загружает я пока не понимаю, откуда берётся эта DLL, но за пример спасибо, я стал верить, что это возможно и в VB6 Добавлено через 6 минут Там без танцев с бубном вообще никак не обойтись конечно Но я даже не знал что это вообще возможно Примерно технология такая: берутся двичные данные, например из ресурсов или из строки base64 не важно откуда потом загружается DLL в виртуальное адресное пространство процесса своего EXE через функцию VirtualAlloc потом загружается таблица импорта функций потом куча всякого ещё что я вообще не понимаю Добавлено через 4 минуты Вообще не понимаю как загрузить DLL из воздуха и выполнить функцию я вообще в шоке Добавлено через 6 минут Помнится мне вроде The Trick работал уже с чем-то похожим, он ведь у нас супер хакер Добавлено через 2 минуты На vb6 ещё наверное не создан человечеством такой код всё-таки вот тема https://www.vbforums.com/showt... rom-memory Добавлено через 1 минуту Там у нашего гениального The Trick что-то похожее было вроде но не сама функция LoadLibrary из ресурсов Добавлено через 2 минуты ну короче нужен огромный модуль с самописной функцией LoadLibrary которая будет принимать в качестве параметра не имя файла DLL а буфер данных DLL файла и ещё функции вызова функций из DLL и очень код такой серьёзный будет, с ассемблерными вставками даже я думаю вряд ли это так просто осуществить Добавлено через 3 минуты testuser2, помнишь былд проект у трюкача, вот он: https://www.vbforums.com/showt... ut-runtime там что-то такое есть примерно похожее, но очень сложное и почти не понятное нам
0
|
||
| 04.11.2024, 04:39 [ТС] | |
|
Но в этом способе есть определенный минус - вызовы функций производятся по указателю, это как бы визуалльное усложнение. Вот еслиб можно было библу загрузить так, чтоб ее пришить к декларациям..
1
|
|
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 04.11.2024, 04:57 | |
|
и правда только для PureBasic и для С есть в интернете код вот например как раз https://www.purebasic.fr/engli... hp?t=37979
для vb6 нет такого кода в интернете короче, на почти на 100% уверен что The Trick точно знает как это сделать или у него уже есть почти правильно написанный код Добавлено через 1 минуту testuser2, короче мой совет - спроси у The Trick может у него уже и модуль такой написан... Добавлено через 14 минут testuser2, ну короче не по сеньке шапка, не для таких отсталых программистов как мы эта тема, только такой гений как The Trick смог бы разобраться, поэтому предлагаю забыть
0
|
|
|
|
|||||||||||
| 04.11.2024, 13:15 | |||||||||||
|
Статические библиотеки возможно использовать в VB? Если да, можно сишный код (например MemoryModule) скомпилировать в lib и подключить к проекту. В архиве немного измененный код с экспортируемыми функциями с соглашением вызовов stdcall. Кликните здесь для просмотра всего текста
1
|
|||||||||||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|||
| 04.11.2024, 15:23 | |||
|
Добавлено через 7 минут
0
|
|||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 04.11.2024, 15:33 | |
|
locm, надо сконвертировать в TLB
Добавлено через 4 минуты Я без понятия как подключить файл .LIB к проекту на VB6 и возможно ли это вообще. А после компиляции EXE-файла необходимость в библиотеке LIB отпадает?
0
|
|
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
|
| 04.11.2024, 16:00 | |
|
locm, вот например тут: Как подключить *.lib файлы нет ответа с 2007 года, никто не знает как
Добавлено через 4 минуты Нашёл такое "в С++-проекте надо нарисовать IDL-файл, сгенерить из него typelib, которую затем подключить к проекту VB6" Добавлено через 3 минуты locm, вот например нашёл: https://forum.sources.ru/index... pic=195184 там тоже нет ответа с 2007 года Добавлено через 45 секунд простым способом подключить .lib не получится только какими-то хакерскими штучками сложными манипцляциями Добавлено через 15 секунд и то хрен знает как это сделать
0
|
|
| 04.11.2024, 16:04 [ТС] | ||||||||||||
|
Сравнил компрессию RtlCompressBuffer (LZNT) и Сabinet (LZMS). Строку лучше сжимает LZNT, бинарь - LZMS
Кликните здесь для просмотра всего текста
1
|
||||||||||||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
||
| 04.11.2024, 16:51 | ||
|
Добавлено через 43 секунды 139 и 146 извини меня не сильно отличается Добавлено через 58 секунд А вот упаковка и распаковка буфера с помощью компрессии cabinet это интересно. Можно написать такой модуль будет.
0
|
||
|
Вернулся
1751 / 647 / 45
Регистрация: 10.09.2021
Сообщений: 2,800
|
||
| 04.11.2024, 17:25 | ||
|
а я думаю создать только для cabinet Добавлено через 19 минут testuser2, кстати хочешь прикол в cabinet.dll есть возможность распаковки/упаковки ZIP кажется. Там я нашёл COMPRESS_ALGORITHM_MSZIP. Добавлено через 2 минуты RFC 1951 это ZIP?
0
|
||
| 04.11.2024, 17:25 | |
|
access и zip архив Как распаковать ZIP-файл в 7z?
Замена файла в zip архиве при совпадении имени Как сделать архив zip? Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
сукцессия 29. Переход от одних деревьев на другие делать более или менее вероятностным?
anaschu 12.07.2026
Насколько смена типов микоризы — исключительное событие в двухвековой сукцессии? Оценка вероятности в пространстве параметров
В текущей версии модели успешно реализован ключевой механизм. . .
|
сукцессия 27. Думаю, как переделывать уже написанную статью с планами на сукцессию.
anaschu 12.07.2026
Анализ соответствия модели требованиям
Реализованные компоненты:
Механизм закисления почвы через протонную помпу
Конкуренция между типами микориз
pH как триггер сукцессии
C/ P соотношение. . .
|
Сукцессия 26. Мат модель создана.
anaschu 12.07.2026
Модель смены растительных сукцессий посредством управления грибами работает внутри небольшой ячейки почвы, восстанавливающейся после пожара, где ненадолго бывшее царство хвойных снова захватили. . .
|
Решил проблему с ошибкой пагинации сообщений с сервера на алгоритме обхода дерева "Эстафета хвоста".
Hrethgir 12.07.2026
Проблема была в том, что удалялась именно новая кнопка, а не старая. Ни один ИИ не обнаружил это, а сам я смог только когда с работой стало попроще и когда заставил работать будущее автономное. . .
|
|
сукцессия 25. Хронология ошибок
anaschu 12.07.2026
# От 50-тонного гриба до устойчивого леса: хроника ошибок при построении модели вековой сукцессии микоризы
## О чём эта статья
В процессе построения ОДУ-модели (система дифференциальных. . .
|
сукцессия 24. Промежуточное общее описание модели
anaschu 12.07.2026
Хендофф: модель АМ→ЭКМ сукцессии микоризы (ризосфера, 50 лет)
Содержание проекта
Симуляция вековой (50 лет) экологической сукцессии в почве леса
Основные участники: АМ-гриб, ЭКМ-гриб,. . .
|
сукцессия 23. Более физиологичная физиология, более экологичная экология, более диффурные диффуры.
anaschu 12.07.2026
Что реально нашли и починили за эти 5 часов
Правило Линдемана (КПД конверсии сахара в тело, kEff) — раньше 100% полученного углерода шло прямо в биомассу гриба; теперь только kEff=0. 5 (после. . .
|
сукцессия 22. От артефактов к физиологии: калибровка агентной модели грибной сукцессии для воспроизведения сезонной динамики и pH-плато
anaschu 11.07.2026
Аннотация
В данной работе представлена калибровка агентной модели динамики грибных сообществ (fungal-succession), направленная на устранение нефизичных артефактов (коллапс биомассы, мгновенное. . .
|