vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   RSS-Feeds  | Newsletter  | Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2017
 
zurück
IB Zip-DLL 3.0 - Zippen einfach gemacht

In Kürze erscheint die neue Version 3.0 der IB Zip-DLL Komponente. Mit dieser Komponente aus dem Hause "Ingo Bordasch" wird das Erstellen und Entpacken von ZIP-Archiven zum Kinderspiel. Auch selbstextrahierende EXE-Dateien lassen sich erstellen.
01.12.01Ein Bericht von Dieter Otter

Zippen, Entpacken, Selfextracting EXE

... 32-Bit DLL (keine ActiveX-DLL)
... Einsatz in Delphi, C++ und VB
... verschiedene Kompressionsraten
... Unterstützung von Passwörtern
... Erstellen von selfextracting Files

IB Zip-DLL ist eine DLL-Entwicklerkomponente, mit der Sie auf sehr einfache Weise ZIP-Funktionen in Ihren selbsterstellten Programmen integrieren. Und eine automatische Entpack-Funktion eines ZIP-Files ist z.B. immer dann interessant, wenn Sie Ihre Anwendung mit einer Online-Update Funktion ausgestattet haben und die neuen Dateien gezippt vom FTP-Server geladen werden. Wäre doch schön, wenn dann auch die Update-Dateien gleich aus Ihrer Anwendung heraus entpackt werden könnten, oder nicht?

Sicherlich gibt es hier noch viele weitere Beispiele - das soll aber nicht Thema dieser Toolbesprechung sein. Ich habe es mir zur Aufgabe gemacht, die Zip-DLL Komponente von Ingo Bordasch einmal genauer unter die Lupe zu nehmen. Und da im Installationsumfang kein Demo-Projekt für Visual Basic vorhanden war, musste ich also zunächst selbst ein kleines Beispiels-Projekt proggen, um die Funktionalität der Zip-DLL auch testen und beurteilen zu können. Aber das war nicht weiter tragisch - im Gegenteil es hat sogar Spass gemacht

Installation der IB Zip-DLL 3.0 Komponente
Die Test-Version liegt als ausführbare Setup-Datei vor. Die Installation erfolgt schnell und problemlos. Auch ein Deinstallations-Programm ist vorhanden, welches alle installierten Dateien "sauber" entfernte. Der Download der Testversion geht ebenfalls schnell vonstatten, da die Datei nur 680 KByte gross ist. Das Setup beinhaltet die DLL-Komponente selbst, sowie eine Online-Hilfe, welche alle Funktionen der DLL kurz erläutert.

Handhabung
Wie bereits Eingangs erwähnt, ist im Installationsumfang keinerlei Beispielsprojekt enthalten. Um sich einen Überblick über die Funktionen der DLL zu schaffen, muss man entweder der Online-Hilfe glauben oder eben selbst ein kleines Beispielsprojekt erstellen. Die DLL wird nicht - wie es im Gegensatz zu ActiveX-DLLs der Fall ist - über Projekte - Verweise referenziert, sondern direkt über Deklarationen im Codeteil - also genau wie man es von den Windows-API Funktionen her kennt mit Declare Function "...". Alle DLL-Deklarationen können in der Online-Hilfe nachgelesen werden.

Funktionen
Die Funktionen der IB Zip-DLL lassen sich grob in folgende vier Kategorien gliedern:

  1. Zip-Funktionen, um ZIP-Archive zu erstellen und zu bearbeiten
  2. Un(G)Zip-Funktionen, um Dateien aus ZIP-Archiven zu extrahieren
  3. Verschlüsselungsfunktionen, um Dateiinhalte zu ver- und entschlüsseln
  4. Weitere Funktionen, um z.B. Infos über das ZIP-Archiv zu ermitteln oder auch eine selfextracting EXE aus einer ZIP-Datei zu erstellen

Zip-Funktionen
Für das Erstellen und Verwalten von ZIP-Archiven stehen 14 Funktionen zur Verfügung, u.a. auch Funktionen, um ein Kennwort für das Extrahieren der Dateien festzulegen, oder die Kompressionsrate zu bestimmen. Als Kompressionstyp einstellbar sind: normal, schnell, sehr schnell und extra. Desweiteren lassen sich Dateien aus bereits erstellten ZIP-Archiven löschen oder auch zusätzliche Dateien hinzufügen. IB Zip-DLL unterstützt auch Dateimasken, wie etwa *.* oder *.bmp.

Un(G)Zip-Funktionen
Für das Extrahieren von Dateien aus vorhandenen ZIP-Archiven stehen 10 UnZip Funktionen und weitere 4 UnGZip-Funktionen (Linux kompatible Zip-Dateien) bereit. Es lassen sich entweder alle, eine bestimmte Gruppe oder auch nur Einzeldateien aus dem Archiv entpacken. Optional kann auch ein Fortschrittsdialog eingeblendet werden. Befinden sich auch Unterordner im Zip-Archiv, lässt sich festlegen, ob die Ordner-Struktur beim Entpacken beibehalten werden soll.

Verschlüsselungsfunktionen
Über die Funktion IB_EncryptFile kann eine Datei verschlüsselt werden. Als Verschlüsselungsalgorithmus wird Blowfish genutzt. Für das Entschlüsseln solcher verschlüsselter Dateien ist die IB_DecryptFile-Funktion zuständig.

Zusätzliche Funktionen
Hinter dieser Gruppe "verbergen" sich Funktionen, wie das Ermitteln der in einem ZIP-Archiv enthaltenen Dateien, das Ermitteln von Eigenschaften einzelner Dateien (Größe, Kompression) und für viele vielleicht auch noch sehr interessant - eine Funktion, um aus einem ZIP-Archiv eine selbstextrahierende EXE-Datei zu erstellen.

Verwenden der Zip-DLL in Visual Basic

Nachdem man die Funktions-Deklarationen aus der Online-Hilfe in sein Projekt übertragen hat, kann es losgehen.

Erstellen eines Zip-Archivs
Die Handhabung ist wirklich sehr einfach, was das nachfolgende Beispiel auch verdeutlicht:

Dim lResult As Long
 
' 1. Der DLL mitteilen, wie das Archiv heissen soll
IB_ZipArchiveFile "MeinZipArchiv.zip"
 
' 2. Welche Dateien sollen komprimiert werden?
' WICHTIG! Die erste Datei muss per IB_ZipFileSpec angegeben werden!
IB_ZipFileSpec "c:\temp\datei1.exe"
 
' Alle weiteren Dateien dann per IB_ZipAddFileSpec angeben!
IB_ZipAddFileSpec "c:\temp\datei2.exe"
IB_ZipAddFileSpec "c:\temp\datei3.exe"
 
' Und oder Alternativ: Dateimaske verwenden
IB_ZipAddFileSpec "c:\temp\daten\*.*"
 
' 3. Passwort (falls gewünscht)
IB_ZipPassword "geheim"
 
' 4. Kompressionsrate einstellen: 1=normal
IB_ZipCompressType 1
 
' 5. ZIP-Archiv erstellen (1=mit Fortschrittsanzeige)
lResult = IB_Zip(1)
 
' 6. Rückgabewert auswerten
If lResult = -2 Then
  MsgBox "Der Komprimiervorgang wurde durch den Benutzer abgebrochen"
ElseIf lResult > 0 Then
  MsgBox CStr(lResult) Dateien komprimiert!"
Else
  MsgBox "Es ist ein Fehler aufgetreten!"
End If

Die auf diese Weise erzeugten ZIP-Archive sind kompatible zu WinZip und allen anderen Programmen, die das PKZIP-Verfahren nach Indusrie-Standard unterstützen.

SFX - selfextracting EXE erstellen
Das Erstellen einer selbsextrahierenden EXE erledigt die Funktion IB_SFX:

Dim lResult As Long
lResult = IB_SFX("ib-zip.dll", "MeinZipArchiv.zip", "MeinZipExe.exe"

Ruft man nun die ersteltle EXE-Datei auf, erscheint ein Dialog zum Festlegen eines Ziel-Ordner, in welchem die Dateien dann entpackt werden.

Zip-Archiv entpacken
Das Entpacken aller oder auch nur einzelner Dateien aus einem ZIP-Archiv erfolgt ebenso einfach, wie das Erstellen des ZIP-Files selbst:

Dim lCount As Long
 
' 1. ZIP-Archiv festlegen
IB_UnZipArchiveFile "MeinZipArchiv.zip"
 
' 2. Dateien, die entpackt werden sollen
IB_UnZipFileSpec "*.*"
 
' 3. vorhandene Unterverzeichnisse berücksichtigen
IB_UnZipUseStoredDirs 1
 
' 4. Ziel-Ordner festlegen
IB_UnZipExtractDir "d:\test"
 
' 5. Dateien überschreiben? (2=Dialog zeigen)
IB_Overwrite 2
 
' 6. Dateien entpacken (1 = mit ProgressBar)
lCount = IB_UnZip(1)
 
' 7. Rückgabewert auswerten
If lCount = -1 Then
  MsgBox "Das ZIP-Archiv existiert nicht!"
ElseIf lCount = - 2 Then
  MsgBox "Benutzerabbruch während des Entpackens!"
Else
  MsgBox CStr(lCount) & " von " & _
    IB_ZipCount(txtZIPArchiv.Text) & " Dateien entpackt!"
End If

Gesamteindruck

Die IB Zip-DLL Komponente überzeugt durch ihre einfache Handhabung und vor allem durch ihre umfangreichen Funktionen. Bereits nach kürzester Einarbeitungszeit lassen sich die eigenen Anwendungen mit Zip- und UnZip-Funktionen ausstatten.

Ich habe mich entschlossen, für alle Visual Basic Entwickler das eigens für diese Toolbesprechung von mir erstellte Beispiels-Projekt hier zum Download bereitzustellen. Somit können auch Sie sich schnell von der IB Zip-DLL überzeugen.

Das VB Beispiels-Projekt zeigt, wie man ein ZIP-Archiv erstellt, die Dateien wieder extrahiert und auch eine selfexatrcting EXE erzeugen kann:  IBZip_VB6Demo.zip (80 KByte)

Die mir zum Test zugrunde liegende Version 3.0 der Zip-DLL erscheint in den kommenden Tagen. Das Demo lässt sich aber auch ohne Probleme mit der zur Zeit (noch) aktuellen Version 2.51 testen.

Erweiterungen der Version 3.0 gegenüber Version 2.51

  • Multi-volume Diskettensätze können erstellt werden
  • IB_SpaceOnFirstDisk: freigehaltender Platz in der ersten Diskette bei Multi-volume Diskettensätzen
  • IB_Language: neue Funktion um die Texte der Fenster auf eine bestimmte Sprache einzustellen. Zur Zeit verfügbar sind die Sprachen: Englisch, Deutsch, Französisch und Italienisch
  • IB_CRCCheck: mit Dateimaske als 2. Parameter
  • IB_CRCCheck: Fehler behoben wenn Header in der Zip-Datei defekt ist
  • IB_ZipPassword: gleichzeitig Passwort für CRC-Check
  • IB_CRCAddPassword: zusätzliches Passwort für CRCCheck
  • IB_UnZipAddPassword: zusätzliches Passwort für IB_UnZip
  • IB_UnZip: Fehler beim entzippen von Zip-SFX Dateien die nicht dem PKZip-Standard entsprechen behoben (Headergröße)
  • IB_Error: neue Funktion um während der Entwicklung Fehlermeldungen anzuzeigen

Preise
Die IB Zip-DLL gibt es in drei Varianten:

  • Privat Anwender Lizenz (€ 30,-): Einzellizenz zur Anwendung für Freewareprogramme oder für den Eigenbedarf von Privatpersonen
  • Sharewareautor Lizenz (€ 55,-): Einzellizenz für Sharewareautoren
  • Software Entwickler Lizenz (€ 350,-) Lizenz für Softwarefirmen und Entwicklerteams

Bewertung

IB Zip-DLL 3.0
GESAMTWERTUNG
PREIS / LEISTUNGgut
Preis:ab 30,- EUR
Weitere Infos unter:http://www.zip-dll.de/
  sehr viele Funktionen
  leichte Handhabung
  Kennwortschutz
  SFX-Funktion
  günstige Sharewareautoren-Lizenz
  kostenlose Updates!
  Entwicklerlizenz sehr teuer

Fazit
IB Zip-DLL sollte für all diejenigen zur ersten Wahl gehören, die in Ihren eigenen Anwendungen Zip-/ und UnZip-Funktionen benötigen. Weiterer Pluspunkt: die DLL benötigt keine weiteren abhängigen Komponentent! Hevrozuheben ist auch der vergünstigte Preis für Shareware-Autoren von 55,- EUR anstelle der doch nicht gerade geringen 350,- EUR für die Software Entwickler-Lizenz.

Kontakt
Ingo Bordasch Software
Kaskelstrasse 4
10317 Berlin
Deutschland
Tel.: +49 30 - 212 38 48 2
Fax: +49 30 - 55 1 55 909
 Ingo Bordasch

Unterschiede Test- und Vollversion
Die Test-Version ist voll funktionsfähig, alle Funktionen stehen zur Verfügung - jedoch wird bei beim Erstellen von ZIP-Archiven und SFX-Dateien, sowie beim Entpacken von Dateien ein Hinweis eingeblendet. Anwender der Vollversion erhalten zusätzlich alle weiteren Updates kostenlos!

 Download (377 KB)   |   weiter Homepage

Diese Seite wurde bereits 18.946 mal aufgerufen.

nach obenzurück
 
   

Druckansicht Druckansicht Copyright ©2000-2017 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel