|
Вопрощающий
|
|
Создание (+распаковка) CAB архива11.10.2009, 19:26. Показов 13349. Ответов 130
Метки cabinet.dll (Все метки)
|
|
| 11.10.2009, 19:26 | |
|
Ответы с готовыми решениями:
130
Создание архива Программное создание архива. Создание архива с паролем |
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|||||||||||
| 22.11.2024, 12:20 | |||||||||||
|
Надстройку же не подключишь в VBA
Добавлено через 37 минут testuser2, а у fafalone вот так вот это кстати описано в его библиотеке для твинбейсика:
0
|
|||||||||||
| 22.11.2024, 15:10 | ||||||
|
Я не пойму зачем у уважаемого fafalone столько скобок, и явных приведений к integer. Вообще если обрамлять скобками аргумент функции, то это какбы неявное приведение к ByVal, не знаю, правда, как это работает в выражениях, но я стараюсь просто всегда избегать лишних скобок. Небольшой тестик
Добавлено через 6 минут Тут еще нюанс, что VarPtr работает как библиотечная функция, и там принцип передачи аргументов немного иной нежели в VB-функция. Если передать аргумент в скобках в VB-фнукцию будет полное копирование и переменной и данных Добавлено через 50 минут Скобки это привидение к варианту, вот это что, это также как cVar()
1
|
||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 22.11.2024, 15:18 | ||
|
Добавлено через 28 секунд testuser2, твой код мне больше понравился, чем фафалоновский, твоя функция лучше, мне больше нравится
0
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||||||
| 22.11.2024, 15:30 | ||||||
|
Ну красивее же код у тебя, согласись, ну
Хотя у тебя процедура, а не функция, у тебя немного по другому.
0
|
||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|||||||||||
| 22.11.2024, 15:57 | |||||||||||
|
ааааа с функцией же легче работать, чем с процедурой, значит у фафалона всё-таки код лучше, хотя зачем так много скобок там и ещё и Integer тоже не понимаю этого совсем
Добавлено через 38 секунд а давай проверим тогда в Твине, чем гадать Добавлено через 8 минут Короче проверил, его функция работает так же как и твоя процедура. Тоже самое значение возвращает. Попробовал так же убрать первую и последнею лишнею скобку тоже всё работает после этого прекрасно. Добавлено через 2 минуты Я вообще не понимаю зачем у него ТАК МНОГО скобок лишних, я их короче поубирал все, к чёртовой матери, вот теперь так:
Добавлено через 29 секунд И вопрос зачем там CInt тоже не понимаю, если честно. Добавлено через 24 секунды Пожалуй, надо фафалону мозги покомпосировать по этому поводу) Добавлено через 8 минут Я проверил можно упростить даже вот так:
Добавлено через 2 минуты testuser2, https://www.vbforums.com/showt... ost5663272
0
|
|||||||||||
| 22.11.2024, 16:22 | ||
|
0
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 22.11.2024, 16:28 | |
|
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 23.11.2024, 07:55 | |
|
Мой алгоритм кстати не идеален, для создания CAB с несколькими файлами внутри что-то у меня там не так как надо работает. Вроде всё норм, в проводнике винды и в новом TotalCommander вроде нормально всё отображается, а вот в старой версии TotalCommander отображается неправильно уже содержимое архива, если несколько файлов, то оно почему на второй, третитй и т.д. файлы уже почему-то добавляет в самом начале файла плюсик (символ "+") хотя такого просто быть не должно... баг значит у меня где-то в загаловочниках может... ну такой полу-баг... в новых версиях-то всё работает...
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 23.11.2024, 07:59 | |
|
Вот такой вот баг получается, что добавляет символ плюса зачем-то. И эти папки и/или файлы, с символом плюса, уже не читаются потом... В старой версии тотал коммандера, у меня. В новой всё норм отображается и всё читается как надо.
0
|
|
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|||||||||||
| 23.11.2024, 10:19 | |||||||||||
|
Где-то я накосячил в коде может. А самые новые версии умеют распознавать и игнорировать такие косяки...
Добавлено через 1 час 35 минут Ура! Я нашёл где косяк. Чтобы кэбы читались везде-везде хорошо, нужно по другому определять изначальные значения структуры ccab для FCICreate. За основу я теперь взял уже пример из MSDN: https://learn.microsoft.com/ru... -a-cabinet Лучше всего всегда переписывать из примеров от Microsoft конечно же, чтобы избегать косяков... А до этого я переписывал у немцев с Delphi отсюда: https://www.viathinksoft.com/codelib/206 Вообще я и был вдохновлён, этой статьёй у немцев, этим готовым кодом на Delphi, а оказывается косяки там... Так же я был вдохновлён статьёй где рассказывалось как обманывать технологию сжатия/распаковки не в файлы а в IStream в память, вот здесь: https://habr.com/ru/articles/314832/ Добавлено через 8 минут Кто бы мог подумать, у немцев ошибка в коде была, поэтому когда я переписывал функцию с Delphi то и у меня тоже такой же косяк поэтому получился. Добавлено через 1 минуту А всего-то они забыли объявить cbFolderThresh = И только из-за этого в старых версиях архиваторов CAB не читалось как надо, и было с глюками Добавлено через 3 минуты Вот я переписывал этот немецкий код с Delphi:
Добавлено через 5 минут Чтобы это исправить, нужно просто в определении структуры добавить:
Я исправил ошибки в коде! Добавлено через 7 минут А немцы переписывали у китайцев, этот код, кстати, так что изначально могли ошибку допустить китайцы... А теперь я русский переписал код у немцев, которые переписали у китайцев... А лучше всего конечно всего переписывать из MSDN...
0
|
|||||||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 23.11.2024, 10:22 | ||
|
Добавлено через 12 секунд И ошибки тоже...
0
|
||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||||||
| 23.11.2024, 10:35 | ||||||
Сообщение было отмечено HackerVlad как решение
Решение
Теперь вот новая версия модуля, без ошибок уже:
1
|
||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
|
| 23.11.2024, 22:03 | |
|
testuser2, кстати fafalone выложил 64-битную версию модуля, как раз для тебя))) ты же любишь 64))) я его даже не просил он сам решил написать 64 битно-совместимую версию) Вот здесь посмотри: https://www.vbforums.com/showt... ost5663417
Особенно забавно какие комментарии он оставил к моему модулю, мне больше всего понравилась фраза "Некоторые из использованных вами хаков немного свели меня с ума..." ахахахахах Добавлено через 3 минуты Будет ли только в VBA7 работать это большой вопрос конечно, проверять надо. Особенно непонятно как там будет себя чувствовать CDecl.
0
|
|
| 24.11.2024, 05:56 | |||||||||||||
Хотя я замечал в Твин-бейские такую странность там в vbaCopyBytes размер именно Long, хотя по сути, в среде x64 это урезает его возможности, больше 2 гигов не скопируешь
0
|
|||||||||||||
|
Вернулся
1782 / 677 / 46
Регистрация: 10.09.2021
Сообщений: 2,840
|
||
| 24.11.2024, 12:19 | ||
|
Добавлено через 1 минуту CAB всё равно не поддерживает файлы больше 2 Гб, так что нафига там копировать LongPtr таких больших данных быть не может просто
0
|
||
| 24.11.2024, 12:19 | |
|
Создание установочного архива для своих любимых программ Распаковка архива rar без сохранения файла во временную папку Создание архива с паролем средствами PB. Возможно? Создание cab архива
Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
Часы с термометром и праздничным календарем
yariko 12.11.2026
Сегодня мы рассмотрим как можно сделать отличные многофункциональные часы.
Итак, поставим конкретную задачу: разработать часы с календарем, двумя термодатчиками, выводом поздравительных сообщений. . .
|
Транслитерация текста с кириллицы на латиницу (вариант №1)
Maks 11.11.2026
Решил облегчить жизнь себе и коллегам админам при создании электронных почтовых ящиков для пользователей, в результате написал обработку "Транслитерация текста" с кириллицы на латиницу, а в ней. . .
|
Книги по геймдизайну, левел-дизайну, игровым механикам и проектированию игрового опыта
8Observer8 08.11.2026
Содержание блога | English Version
1. 2003 - 06 - Designing Virtual Worlds (1st Edition)
Автор: Richard A. Bartle | Объем: 768 стр.
Ссылки: Amazon
. . .
|
Родители токсичные абьюзеры по отношению к своим детям ругают их оскорбляют не любят
zorxor 08.11.2026
Жить в атмосфере постоянных оскорблений, критики и холодности со стороны родителей — это тяжелое и болезненное испытание, которое оставляет глубокие эмоциональные раны. Токсичное и абьюзивное. . .
|
|
Как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы. Ответ от Джемени ИИ.
zorxor 08.11.2026
Джемени, как только я захожу к себе в свою комнату я сразу же с себя снимаю свои трусы.
Многие люди, возвращаясь домой, сразу переодеваются в максимально свободную одежду или вовсе предпочитают. . .
|
Паттерн очереди действий/команд (Action / Command Queue). Система очереди действий и кат-сцен с SDL3 Callbacks, cglm и OpenGL
8Observer8 07.11.2026
Содержание блога | English Version
Руководство для начинающих по реализации паттерна очереди действий/ команд (Action / Command Queue) на C++ (C++20) с использованием официального SDL3 Callbacks. . .
|
Проверка полного ФИО в типовом справочнике
Maks 07.11.2026
Решение реализовано в конфигурации КА2, на примере справочника "КонтактныеЛицаПартнеров".
Задача:
Запрет инициалов.
Не допускаеть использование сокращений вида "И. И. ", "И. И. ", "И И" и. . .
|
Про "Windows must die!"
kumehtar 04.11.2026
Знаете, чет накатило. . . .
Когда-то это было почти боевым кличем: мол, нормальный человек сидит на DOS, OS/ 2 или Linux, а вот это вот - Must Die. А теперь человек произносит «мастдай» с усмешкой - и. . .
|