FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9235
Вход
Компонента ActiveX Zip, интерфейс использования, VFP8

Предлагаю для рассмотрения еще один вариант работы с архивами Zip,


 
Прислал: Andrew   Категория: Разное


Компонента ActiveX Zip, интерфейс использования, VFP8

Предлагаю для рассмотрения еще один вариант работы с архивами Zip,
1) вся основная информация: http:\\www.hdse.org/activexzip/
2) компонента свободно-распространяемая
3) основные недостатки:
- стартовый банер
- архивация подкаталогов, которые удовлетворяют маске
(если они не удовлетворяют маске, то не архивируются)
- пустые подкаталоги упаковываются, но не распаковываются
- просмотр архивов при помощи WinZip,WinRar некорректен

4) разработка и тестирование: VFP8 (SP1)
5) используются возможности
- Bindevent(...)
- Define Class ... OlePublic Implements ... In ...

подробности в файлах:
- ReadMe.txt
- ActiveXZip.chm
- Zip_Objects.prg

Пример: форма Test.scx

Принимаются Пожелания, замечания,вопросы
ShmSoft@rol.ru
----------------------------------------------------------

Основные элементы Архиватора
----------------------------
(пример использования - форма Test)

Некоторые замечания
-------------------
1) Наименование объекта : 'hdsecompression.activexzip'

2) Основные методы:

addFile(filespec As String, - добавить файлы в архив
recursive As Logical,
storepaths As Logical,
password As String) As Void

Close() - закрыть открытый ранее архивный файл (Open)

create(zipFile As String) As Void - создать новый архив Zip

deleteFile(item As Variant) As Void - удалить файл из архива

extract(item As Variant, - извлечь файл из архива
extractDir As String,
password As String) As Void

getCount(count As Long) As Void - вернуть количество элементов в архиве
нумерация файлов считается с 0

getFileDetails(item As Variant) - прочитать данные о файле в архиве
As Void по номеру файла (элемента) 0-n

onFileDetails(file As String, - событие, расшифровывающее данные о файле
passprotected As Logical, требуется механизм связывания событий
uncompressedSize As Long, Bindevent(...)
compressedSize As Long)
As H Result


onFileProcessed(file As String, - событие, происходящее при сжатии файла, или разжатии,
successfullyArchived As Logical, уточняющее также ошибку упаковки/распаковки
failDescription As String)
As H Result

open(zipFile As String) As Void - открыть файл архива

showSplash(screenX As Long, - показать Лицензионный Банер, (не удалось обойти)
screenY As Long,
size As SplashSizeRange)
As Void

compressString(uncompressed As String, - сжатие символьной строки, не тестировалось
compressed As Variant) As Void

uncompressData(compressed As Variant, - разжатие символьной строки, не тестировалось
uncompressed As String) As Void

Замечание 1.: Параметры в данные методы-функции передаются по-ссылке. Возвраты функций
не анализировались.

Замечание 2.: Технологические моменты - в такстах методов примера TEST

Уверенно работает с шаблоном *.*

-----------------------------
Shm-Soft, ноябрь, 2004
-----------------------------

 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.951) Вложение [194.54]kb
Дополнения пользователей
Компонента ActiveX Zip, интерфейс использования, VFP8
[+][?]
life
28.07.07 13:04:38

Вчера нашел эту темку, надо zip с паролем. Все отлично, но... Есть баг:( Берем архив запароленный
и пытаемся распаковать c заведомо неверным паролем:

x=Createobject('HDSECompression.ActivexZip')
x.open("c:\test.zip")
x.extract(0,"c:\test\","a1231")

и получаем exception который "не отпускает" хендл файла с:\test.zip - т.е. файл открыт, а сделать
ничего нельзя все на exception идет. Правда спасает закрытие и открытие файла снова.

А мелкое Splash окно которое возникает при CreateObject можно удавить заменой в
HDSECompression.dll 1 байтика:
141F должен стать EB.

Ну например так:
x=fopen("HDSECompression.dll")
fseek(x,0x141f,0)
fwrite(x,chr(0xeb)
fclose(x)






[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика