Выбор архиватора | |
---|---|
ABB Автор Сообщений: 149 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
Требуется архиватор, но главное условие - это не должна быть внешняя программа.
Кто нибудь пытался использовать API от Microsoft? The Compression API exposes the Windows MSZIP, XPRESS, XPRESS_HUFF, and LZMS compression algorithms. docs.microsoft.com |
Re: Выбор архиватора | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Странное условие. А что, API это не внешняя программа?
В 7z вся логика упакована в dll - но напрямую из фокса это не повызывать, нужна ещё прослойка на си. Можно взять собственно реализацию алгоритма LZMA (если нужно чисто для своих целей сжимать данные - не для того чтобы их могли развернуь потом стандартные архиваторы - т.е. не использовать "формат" архива 7z) - на с++ или c# и использовать в своей программе - совершенно официально. ------------------ WBR, Igor |
Re: Выбор архиватора | |
---|---|
ABB Автор Сообщений: 149 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
Не точно выразился - это не должна быть exe. Имеет смысл использовать zlib? В решениях есть варианты использования. Но идеально было бы использовать ресурсы Windows. |
Re: Выбор архиватора | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
zlib не вижу смысла использовать, а прикрутить 7z.dll - вполне себе решение. Только прокладку сделать на сях (в идеале вообще fll - для супер-нативного использования из фокса), или шарпе, если это ближе/понятнее. Может где уже и готовые есть, не в курсе...
Ещё вопрос - нужен таки АРХИВ, или просто метод сжатия, без заморочки на форматы. Т.е. должно ли полученное "нечто" распаковываться ВНЕ этой программы? ------------------ WBR, Igor |
Re: Выбор архиватора | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Подобное было как-то в теме: forum.foxclub.ru В частности сообщение:
Также, могу посоветовать почитать и полностью все данное обсуждение, возможно окажется в чем-то полезным. Поскольку в ряде случаев несколько лучше бывает пользоваться все же сторонними упаковщиками. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) |
Re: Выбор архиватора | |
---|---|
ABB Автор Сообщений: 149 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
|
Re: Выбор архиватора | |
---|---|
Foxtrot Сообщений: 3408 Откуда: Куда: Дата регистрации: 25.04.2003 |
|
Re: Выбор архиватора | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Ага, указатели на функции, да ещё и антикварный cab формат - сразу всад
------------------ WBR, Igor |
Re: Выбор архиватора | |
---|---|
sphinx Сообщений: 31189 Откуда: Каменск-Уральски Дата регистрации: 22.11.2006 |
Как ни странно - но нет. Это библиотеки ОС. Можно конечно, отказаться от ОС и как-то вручную делать нужные джампы. Или надо просто определиться, что же является ВНЕШНЕЙ программой. Как по мне - разные системные вызовы вми, апи и прочее - НЕ являются. Но это возможно лишь терминология, не спорю. Но я не считаю АПИ внешней программой - а кто и как считает - ну может и интересно, но мне принципиально не сильно важно. ------------------ "Veni, vidi, vici!"(с) |
Re: Выбор архиватора | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
В Винде есть средство зиповки-раззиповки. мы же видим зиповые файлы как папки, и можем их читать и писать. Это делается вот этим API
www.sql.ru Но оно... я не достиг уверенной архивации с его помощью. Может оно защищено от пользования юзером, не понял и бросил. Пользуюсь древней FLL-кой VFPCOMPRESS.fll Доб. Да, функции создания пустого ZIP_файла в API нет (не нашел), но в фоксе есть возможность создать любой (бинарный) файл командой FWRITE, Пива, давно-давно, приводил пример такого пустого ZIP-файла, где-то нашел мануал структуры, видимо ) Исправлено 1 раз(а). Последнее : of63, 01.07.18 21:10 |
Re: Выбор архиватора | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
ru.wikipedia.org
Помимо WindowsAPI есть и API того же 7z - и оно хоть и не "встроенное в винду" (а кто его знает что и куда там встроено, учитывая всё многообразие версий и плюс к тому возможность включения/отключения разнообразных компонентов), но получше будет - конечно, если суметь им воспользоваться ------------------ WBR, Igor |
Re: Выбор архиватора | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
> если суметь им воспользоваться
"им" - это 7z, или Виндой ? Почему спрашиваю: Представь, я несу мою прогу на фоксе в города и веси. Мне писать еще инструкцию (и юзеру в деревне нажимать кнопки) по установке 7z ? Увольте. максимум один экзешник, при наших-то возможностям прог, на VFP... Исправлено 1 раз(а). Последнее : of63, 01.07.18 22:05 |
Re: Выбор архиватора | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Им, это АПИ 7z. Которое, мягко говоря, несколько непростое, да и с документацией там беда... По крайней мере обычными declare dll с ним не поработаешь.
Конкретно 7z не требует никакой "установки". Всё что нужно для работы, это его библиотека 7z.dll. Ну для фокса, наверное, ещё нужна будет стыковочная dll/fll, в том же шарпе хоть и не без некоторых приседаний, но можно напрямую её подключить. В результате программа получается вполне себе самодостаточной - не надо ни настраивать что то в винде ни устанавливать другой софт (тот же 7z). ------------------ WBR, Igor |
Re: Выбор архиватора | |
---|---|
Taran Сообщений: 13626 Откуда: Красноярск Дата регистрации: 16.01.2008 |
Вероятно у меня и не правильно.
7za.exe тупо ложу в папку с программой. Некоторый класс - обертка, который принимает каталог с файлами или для файлов, пароль и прочее. Формирует командную строку и запускает 7za.exe. Хотелось бы конечно создавать некий объект на основе некоторого архиватора.dll. Но. А ведь отрабатывает командная строка и позволяет сделать всё. |
Re: Выбор архиватора | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Да, отрабатывает, но "неаккуратненько" Тот же прогресс не прикрутишь, листинг файлов в архиве - несколько через жо выходит.
И потенциально есть проблемы с правами/безопасностью. Скажем если на сетевом ресурсе держать программу, или на флешке - саму то её можно подписать Authenticode, и на уровне домена сделать такого издателя "доверенным", а внешнюю утилиту уже нет. Впрочем, 7z и из исходников можно собрать для такого случая... ------------------ WBR, Igor |
Re: Выбор архиватора | |
---|---|
ABB Автор Сообщений: 149 Откуда: Санкт-Петербург Дата регистрации: 21.10.2006 |
В общем, создается впечатление, что готового решения для 7z нет.
Увязать в WinAPI у меня желания нет Буду использовать vfpcompression.fll |
Re: Выбор архиватора | |
---|---|
Crispy Сообщений: 18571 Дата регистрации: 16.05.2005 |
Как это нет! А японская 7-zip32.dll? ;) о которой когда-то рассказывал по ссылке выше. Вполне рабочая, пользовался без проблем. В 17 году даже обновлялась. Т.е. более-менее живой проект.
В принципе похоже тоже неплохое решение. Также например у меня давно уже в одной задаче используется простой как 3 рубля и надежный XZip.dll. Пакует-распаковывает железно. Создаю с его помощью таблицы .ODS с несколькими различными листами для отчетов. ------------------ В действительности все иначе, чем на самом деле. (Антуан де Сент-Экзюпери) Исправлено 1 раз(а). Последнее : Crispy, 03.07.18 06:19 |
Re: Выбор архиватора | |
---|---|
b_i_f_2006 Сообщений: 14 Дата регистрации: 19.01.2006 |
Есть же "наша" библиотека - FoxZip.
Я ее давно адаптирую в свои программы. |
Re: Выбор архиватора | |
---|---|
of63 Сообщений: 25256 Откуда: Н.Новгород Дата регистрации: 13.02.2008 |
Не чем она сделана? В смысле, какой принцип сжатия?
|
Re: Выбор архиватора | |
---|---|
Igor Korolyov Сообщений: 34580 Дата регистрации: 28.05.2002 |
Это банальный zlib.dll вызываемый банальными declare dll - правда сама dll зачем-то засунута внутрь vcx файла, и для работы вынимается в tmp папку (что может спровоцировать не очень адекватный АВ).
И вообще так ридми файл есть где по-русски всё написано... ------------------ WBR, Igor |
© 2000-2024 Fox Club  |