Visual Basic, .NET, ASP, VBScript
 

   
   
     

Форум - Общий форум

Страница: 1 |

 

  Вопрос: и всё-равно zips Добавлено: 09.05.03 17:07  

Автор вопроса:  ZoomerSD | ICQ: 148640473 

я тут уже помещал такое сообщение, но мне так и не прислали пример, так-что помещаю ещё раз:

Кто нибудь ,кто  знает как добовлять файлы в зип архив и извлекать их оттуда, отзавитесь

Ответить

  Ответы Всего ответов: 14  

Номер ответа: 1
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #1 Добавлено: 09.05.03 18:12

Хороший вопрос! И ещё: как то же проделать в rar-e!

Ответить

Номер ответа: 2
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #2 Добавлено: 09.05.03 19:20

To logout: незнаю как тебе, а мне рар нафиг не нужен мне зипы бы отрыть вот

Ответить

Номер ответа: 3
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #3 Добавлено: 09.05.03 23:25

Зипить хотел - лови!

'------------------ код формы ------------------------------

Private Sub Form_Click()

  Dim retcode As Integer  ' For Return Code From ZIP32.DLL

  Cls

  '-- Set Options - Only The Common Ones Are Shown Here
  '-- These Must Be Set Before Calling The VBZip32 Function
  zDate = vbNullString
  'zDate = "08151998" ' mmddyyyy
  'zExcludeDate = 1 ' 1 = Exclude files later than zDate
  zTempDir = vbNullChar ' Temporary directory for use during zip process
  'zTempDir = "C:\work"
  zRootDir = vbNullChar
  zJunkDir = 0     ' 1 = Throw Away Path Names
  zRecurse = 0     ' 1 = Recurse -R 2 = Recurse -r 2 = Most Useful :)
  zUpdate = 0      ' 1 = Update Only If Newer
  zFreshen = 0     ' 1 = Freshen - Overwrite Only
  zLevel = Asc(9)  ' Compression Level (0 - 9)
  zEncrypt = 0     ' Encryption = 1 For Password Else 0
  zComment = 0     ' Comment = 1 if required

  '-- Select Some Files - Wildcards Are Supported
  '-- Change The Paths Here To Your Directory
  '-- And Files!!!
  zArgc = 3           ' Number Of Elements Of mynames Array
  zZipFileName = "c:\My Documents\MyFirst.zip"
  zZipFileNames.zFiles(0) = "e:\wiz\about.c"
  zZipFileNames.zFiles(1) = "e:\wiz\action.c"
  zZipFileNames.zFiles(2) = "e:\wiz\comment.c"
  ' This next variable affects where Zip32 will look for files by default
  ' AND how they are stored in the zip
  'zRootDir = "E:\wiz"
 

  '-- Go Zip Them Up!
  retcode = VBZip32

  '-- Display The Returned Code Or Error!
  Print "Return code:" & Str(retcode)

End Sub

Private Sub Form_Load()

  Me.Show

  Print "Click me!"

End Sub
'---------------  конец формы --------------------

'------------------ код модуля ------------------------------

Option Explicit

'-- Holds The Zip Archive Filenames
Public Type ZIPnames
  zFiles(0 To 99) As String
End Type

'-- Call Back "String"
Public Type ZipCBChar
  ch(4096) As Byte
End Type

'-- Little "String"
Public Type ZipStr
  ch(256) As Byte
End Type

'-- ZPOPT Is Used To Set The Options In The ZIP32.DLL
Public Type ZPOPT
  Date           As Long   ' LPSTR Date (8 Bytes Long) "mmddyyyy"
  szRootDir      As Long   ' LPSTR Root Directory Pathname (Up To 256 Bytes Long)
  szTempDir      As Long   ' LPSTR Temp Directory Pathname (Up To 256 Bytes Long)
  fTemp          As Long   ' 1 If Temp dir Wanted, Else 0
  fSuffix        As Long   ' Include Suffixes (Not Yet Implemented!)
  fEncrypt       As Long   ' 1 If Encryption Wanted, Else 0
  fSystem        As Long   ' 1 To Include System/Hidden Files, Else 0
  fVolume        As Long   ' 1 If Storing Volume Label, Else 0
  fExtra         As Long   ' 1 If Excluding Extra Attributes, Else 0
  fNoDirEntries  As Long   ' 1 If Ignoring Directory Entries, Else 0
  fExcludeDate   As Long   ' 1 If Excluding Files Earlier Than Specified Date, Else 0
  fIncludeDate   As Long   ' 1 If Including Files Earlier Than Specified Date, Else 0
  fVerbose       As Long   ' 1 If Full Messages Wanted, Else 0
  fQuiet         As Long   ' 1 If Minimum Messages Wanted, Else 0
  fCRLF_LF       As Long   ' 1 If Translate CR/LF To LF, Else 0
  fLF_CRLF       As Long   ' 1 If Translate LF To CR/LF, Else 0
  fJunkDir       As Long   ' 1 If Junking Directory Names, Else 0
  fGrow          As Long   ' 1 If Allow Appending To Zip File, Else 0
  fForce         As Long   ' 1 If Making Entries Using DOS File Names, Else 0
  fMove          As Long   ' 1 If Deleting Files Added Or Updated, Else 0
  fDeleteEntries As Long   ' 1 If Files Passed Have To Be Deleted, Else 0
  fUpdate        As Long   ' 1 If Updating Zip File-Overwrite Only If Newer, Else 0
  fFreshen       As Long   ' 1 If Freshing Zip File-Overwrite Only, Else 0
  fJunkSFX       As Long   ' 1 If Junking SFX Prefix, Else 0
  fLatestTime    As Long   ' 1 If Setting Zip File Time To Time Of Latest File In Archive, Else 0
  fComment       As Long   ' 1 If Putting Comment In Zip File, Else 0
  fOffsets       As Long   ' 1 If Updating Archive Offsets For SFX Files, Else 0
  fPrivilege     As Long   ' 1 If Not Saving Privileges, Else 0
  fEncryption    As Long   ' Read Only Property!!!
  fRecurse       As Long   ' 1 (-r), 2 (-R) If Recursing Into Sub-Directories, Else 0
  fRepair        As Long   ' 1 = Fix Archive, 2 = Try Harder To Fix, Else 0
  flevel         As Byte   ' Compression Level - 0 = Stored 6 = Default 9 = Max
End Type

'-- This Structure Is Used For The ZIP32.DLL Function Callbacks
Public Type ZIPUSERFUNCTIONS
  ZDLLPrnt     As Long        ' Callback ZIP32.DLL Print Function
  ZDLLCOMMENT  As Long        ' Callback ZIP32.DLL Comment Function
  ZDLLPASSWORD As Long        ' Callback ZIP32.DLL Password Function
  ZDLLSERVICE  As Long        '

Ответить

Номер ответа: 4
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #4 Добавлено: 09.05.03 23:36

Кстати! Совсем забыл!

Раззипить можно вот так:

'------------------------код формы-------------------------

Option Explicit


'-- C Style argv
Private Type UNZIPnames
  uzFiles(0 To 99) As String
End Type

'-- Callback Large "String"
Private Type UNZIPCBChar
  ch(32800) As Byte
End Type

'-- Callback Small "String"
Private Type UNZIPCBCh
  ch(256) As Byte
End Type

'-- UNZIP32.DLL DCL Structure
Private Type DCLIST
  ExtractOnlyNewer  As Long    ' 1 = Extract Only Newer/New, Else 0
  SpaceToUnderscore As Long    ' 1 = Convert Space To Underscore, Else 0
  PromptToOverwrite As Long    ' 1 = Prompt To Overwrite Required, Else 0
  fQuiet            As Long    ' 2 = No Messages, 1 = Less, 0 = All
  ncflag            As Long    ' 1 = Write To Stdout, Else 0
  ntflag            As Long    ' 1 = Test Zip File, Else 0
  nvflag            As Long    ' 0 = Extract, 1 = List Zip Contents
  nfflag            As Long    ' 1 = Extract Only Newer Over Existing, Else 0
  nzflag            As Long    ' 1 = Display Zip File Comment, Else 0
  ndflag            As Long    ' 1 = Honor Directories, Else 0
  noflag            As Long    ' 1 = Overwrite Files, Else 0
  naflag            As Long    ' 1 = Convert CR To CRLF, Else 0
  nZIflag           As Long    ' 1 = Zip Info Verbose, Else 0
  C_flag            As Long    ' 1 = Case Insensitivity, 0 = Case Sensitivity
  fPrivilege        As Long    ' 1 = ACL, 2 = Privileges
  Zip               As String  ' The Zip Filename To Extract Files
  ExtractDir        As String  ' The Extraction Directory, NULL If Extracting To Current Dir
End Type

'-- UNZIP32.DLL Userfunctions Structure
Private Type USERFUNCTION
  UZDLLPrnt     As Long     ' Pointer To Apps Print Function
  UZDLLSND      As Long     ' Pointer To Apps Sound Function
  UZDLLREPLACE  As Long     ' Pointer To Apps Replace Function
  UZDLLPASSWORD As Long     ' Pointer To Apps Password Function
  UZDLLMESSAGE  As Long     ' Pointer To Apps Message Function
  UZDLLSERVICE  As Long     ' Pointer To Apps Service Function (Not Coded!)
  TotalSizeComp As Long     ' Total Size Of Zip Archive
  TotalSize     As Long     ' Total Size Of All Files In Archive
  CompFactor    As Long     ' Compression Factor
  NumMembers    As Long     ' Total Number Of All Files In The Archive
  cchComment    As Integer  ' Flag If Archive Has A Comment!
End Type

'-- UNZIP32.DLL Version Structure
Private Type UZPVER
  structlen       As Long         ' Length Of The Structure Being Passed
  flag            As Long         ' Bit 0: is_beta  bit 1: uses_zlib
  beta            As String * 10  ' e.g., "g BETA" or ""
  date            As String * 20  ' e.g., "4 Sep 95" (beta) or "4 September 1995"
  zlib            As String * 10  ' e.g., "1.0.5" or NULL
  unzip(1 To 4)   As Byte         ' Version Type Unzip
  zipinfo(1 To 4) As Byte         ' Version Type Zip Info
  os2dll          As Long         ' Version Type OS2 DLL
  windll(1 To 4)  As Byte         ' Version Type Windows DLL
End Type

'-- This Assumes UNZIP32.DLL Is In Your \Windows\System Directory!
Private Declare Function Wiz_SingleEntryUnzip Lib "unzip32.dll" _
  (ByVal ifnc As Long, ByRef ifnv As UNZIPnames, _
   ByVal xfnc As Long, ByRef xfnv As UNZIPnames, _
   dcll As DCLIST, Userf As USERFUNCTION) As Long

Private Declare Sub UzpVersion2 Lib "unzip32.dll" (uzpv As UZPVER)

'-- Private Variables For Structure Access
Private UZDCL  As DCLIST
Private UZUSER As USERFUNCTION
Private UZVER  As UZPVER

'-- Public Variables For Setting The
'-- UNZIP32.DLL DCLIST Structure
'-- These Must Be Set Before The Actual Call To VBUnZip32
Public uExtractOnlyNewer As Integer  ' 1 = Extract Only Newer/New, Else 0
Public uSpaceUnderScore  As Integer  ' 1 = Convert Space To Underscore, Else 0
Public uPromptOverWrite  As Integer  ' 1 = Prompt To Overwrite Required, Else 0
Public uQuiet            As Integer  ' 2 = No Messages, 1 = Less, 0 = All
Public uWriteStdOut      As Integer  ' 1 = Write To Stdout, Else 0
Public uTestZip          As Integer  ' 1 = Test Zip File, Else 0
Public uExtractList      As Integer  ' 0 = Extract, 1 = List Contents
Public uFreshenExisting  As Integer  ' 1 = Update Existing by Newer, Else 0
Public uDisplayComment   As Integer  ' 1 = Display Zip File Comment, Else 0
Public uHonorDirectories As Integer  ' 1 = Honor Directories, Else 0
Public uOverWriteFiles   As Inte

Ответить

Номер ответа: 5
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #5 Добавлено: 10.05.03 00:00
Для самых маленьких (совсем забыл):
'--------- этому коду уже 1000 лет ------
Function winZipit(ByVal source As String, ByVal target As String, ByVal zip As Boolean)
   zipIT = App.Path & "winzip32 -a"
   unzipIT = App.Path & "winzip32 -e "
     If zip = True Then
        Shell (zipIT & target & source)
    Else: Shell (unzipIT & target & source)
    End If
 End Function
'--------- конец ------------------------
Чего непонятно - спрашивайте!  
 

Ответить

Номер ответа: 6
Автор ответа:
 E-Man



Вопросов: 3
Ответов: 132
 Профиль | | #6 Добавлено: 10.05.03 14:56

Дааа..... И чего все так любят юзать чужие либы?

Вот я бы хотел получить именно исходник именно зипа именно на vb....

Во-во, мечтать не вредно :)) В инете нифига похожего нету :(( Вот на Си - сколько угодно :((

Ответить

Номер ответа: 7
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #7 Добавлено: 10.05.03 20:11

logout, спасибо за код,конечно, только он какой-то странный,я ели нашол библиотеку zip32.dll  , как не странно, но нашол я её в кваке2 когда я запустил проект, мне вышло сообщение об ошибке в VISUAL BASIC  типо оно будет закрыто и всё пробовал несколько раз, одно и то-же

Ответить

Номер ответа: 8
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #8 Добавлено: 10.05.03 22:24

Начнём с того, что неплохо было бы узнать код ошибки и что там написано конкретно?

Один мой знакомый, начинающий программист, тоже натолкнулся на ошибку в этом коде; но он ещё маленький, и не понял, что нужно было указывать на зипование только реально существующие файлы.

Код 100% рабочий.

Может тебя устроит шелом зипить?

Попробуй сам разобраться сначала, если не выйдет ничего - пиши, будет время - помогу...

Далее мне просто смешно отвечать на такой низкий выпад:

>Дааа..... И чего все так любят юзать чужие либы?

Этот код является открытым, свободен к распространению и модернизации. Молодой человек ( leo ) обратился за помощью два раза и не один крутой девелопер не дал толкового ответа как сие осуществить. Я сделал всё, что в моих силах. Кто может, пусть сделает больше...

>Вот я бы хотел получить именно исходник именно зипа именно на vb....

Вам, сударь, нужно в раздел "МАГИЯ, АСТРОЛОГИЯ, ГАДАНИЯ", там вам щёлкнут волшебной палочкой по жирной жопе и из неё вывалится аппетитный кусок необходимого кода...

>Во-во, мечтать не вредно :))

Во-первых, я не мечтаю, а реально пытаюсь помочь парню в решении его проблемы

>В инете нифига похожего нету :((

Нафига тебе, крутому девелоперу и-нет? Ты ведь легко сам любой код накалякаешь?

>Вот на Си - сколько угодно :((

Если ты с С знаком, то нафига тебе VB? Напиши dll-ку на С - она быстрее работать будет чем Vb! Непонятно как - то... 

Ответить

Номер ответа: 9
Автор ответа:
 hedgehog



ICQ: 175571327 

Вопросов: 15
Ответов: 207
 Web-сайт: ezh.ru
 Профиль | | #9
Добавлено: 10.05.03 23:04

Не уверен что библиотека из квака - та самая. Саму библиотеку (и источник, насколько я понял) удалось отыскать здесь:

http://www.codeguru.com/vb/articles/1854.shtml

что лишний раз доказывает, что найти можно все, если знать, что именно ищешь. Там есть и тестовый проект и библиотеки в архиве.

Ответить

Номер ответа: 10
Автор ответа:
 ZoomerSD



ICQ: 148640473 

Вопросов: 135
Ответов: 270
 Профиль | | #10 Добавлено: 11.05.03 00:14
да, действительно, библиотека была нета, с новой он начал хотябы что-то писать, только он мне теперь на форме пишет zip warning: name not matched: и имя файла, я проверял, все файлы есть, что делать не знаю. может кто подскажети количество файлов правильно подставил 

Ответить

Номер ответа: 11
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #11 Добавлено: 11.05.03 10:51

Нет, этоу страничку я в глаза невидел никогда - очень интересно...

Неплохо в целом, проект мне понравился. Но это не первоисточник.

Первоисточник должен быть тут:

ftp://ftp.info-zip.org/pub/infozip/infozip.html

Но опять же нового в том что можно зипить мы не открыли...

Вот кто знает как можно рарить? 

Ответить

Номер ответа: 12
Автор ответа:
 E-Man



Вопросов: 3
Ответов: 132
 Профиль | | #12 Добавлено: 11.05.03 16:13

2 logout:

А к чему такая агрессия? То, что Вы, уважаемый logout (во как), пытаетесь ему помочь, я очень уважаю. И ни в коем случае не надо расценивать эту мою фразу как выпад. Тем более "низкий" :((

Я только сказал, что хотелось бы где-нибудь найти исходник зипа, переведенный на VB. И 'мечтать не вредно' - это стоит рассматривать как мою самокритику..

И потом, кто сказал, что я "крутой девелопер"? С "С " знаком, но он меня как-то раздражает. VB роднее.

А если чужие либы юзать, то я бы предпочел zLib.dll...

Ответить

Номер ответа: 13
Автор ответа:
 logout



Вопросов: 1
Ответов: 37
 Профиль | | #13 Добавлено: 11.05.03 19:15

>А если чужие либы юзать, то я бы предпочел zLib.dll...

Во-первых, если бы был открытый код zipовой dllки, то эта либа не была бы твоей...

Во-вторых, либа на С работает ГОРАЗДО БЫСТРЕЕ.

Если есть желение проверить - возьми нормальный алгоритм Маркова, проверь быстродействие с одинаковым объёмом под Vb и под С - разница будет значительная!

А агрессия - на пустые сообщения...

Ответить

Номер ответа: 14
Автор ответа:
 E-Man



Вопросов: 3
Ответов: 132
 Профиль | | #14 Добавлено: 11.05.03 22:30

Блин. Я же говорю - мне просто нужно код встроить в прогу без использования dll.

Для того и нужен исходник.

Ответить

Страница: 1 |

Поиск по форуму



© Copyright 2002-2011 VBNet.RU | Пишите нам