Benutzer-Werkzeuge

Webseiten-Werkzeuge


k28:k28.1:k28.1.1:start



28.1.1 Klasse Compress

Für das Komprimieren einer Datei oder das Verpacken einer einzelnen Datei in ein Archiv sind vor allem diese 4 ausgewählten Eigenschaften und die Methode Compress.File interessant:

EigenschaftBeschreibung
TypeBevor Sie eine der Methoden dieser Klasse verwenden können, müssen Sie den Kompressionstreiber auswählen, den Sie verwenden wollen. Zur Wahl stehen 2: zlib oder bzlib2
MinKleinster Kompressionsgrad (Level=1) für den verwendeten Kompressionstreiber
DefaultStandard-Kompressionsgrad: zlib → 6 und bzlib2 → 9
MaxGrößter Kompressionsgrad ist für zlib und bzlib2 gleich 9

Tabelle 28.1.1.1: Eigenschaften der Klasse Compress

Die Methode Compress.File hat folgende Syntax:

SUB File ( Source AS String, Target AS String [ , Level AS Integer ] )

Source: Pfad zur zu verpackenden Datei Target: Pfad der Archiv-Datei. Ist das Archiv bereits vorhanden, wird es ohne Rückfrage überschrieben. Level: Die Angabe des Kompressionsgrades ist optional. Fehlt diese Angabe, dann wird der Standard-Kompressionsgrad (Tabelle 28.1.1.1) für den verwendeten Kompressionstreiber verwendet.

Abbildung 28.1.1.1: Programm zum Verpacken einer Datei nach zwei unterschiedlichen Algorithmen

28.1.1.1 Projekt Compress

Für dieses Projekt wird der vollständige Quelltext angegeben und in den folgenden Kommentaren kurz erläutert:

' Gambas class file
' Um eine komprimierte Datei zu generieren, benötigen Sie die Komponente gb.compress!
 
Private sFileSource As String
Private sFileTarget As String
Private sCompLevel As String
 
Private sExtension As String
 
Public Sub Form_Open()
  FMain.Center
  FMain.Resizable = False
  SpinBoxZLIB.MinValue = 1     ' Best speed
  SpinBoxZLIB.MaxValue = 9     ' Best compression
  SpinBoxZLIB.Value = 6        ' Default
  SpinBoxBZLIB2.MinValue = 1   ' Best speed - Fast
  SpinBoxBZLIB2.MaxValue = 9   ' Best compression
  SpinBoxBZLIB2.Value = 9      ' Default
End ' Form_Open()
 
Public Sub btnCompressZLIB_Click()
  Dim Cp As New Compress
 
  sExtension = ".gz"
 
  Dialog.Filter = ["*.csv", "CSV-Datei", "*", "Alle Dateien"]
  Dialog.Path = User.Home
  Dialog.Title = "Wählen Sie eine Datei aus!"
  If Dialog.OpenFile() Then Return
 
  sFileSource = Dialog.Path
  sFileTarget = sFileSource & sExtension
 
  Cp.Type = "zlib"
  Cp.File(sFileSource, sFileTarget, SpinBoxZLIB.Value)
 
End ' btnCompressZLIB_Click()
 
Public Sub btnCompressBZLIB2_Click()
  Dim Cp As New Compress
 
  sExtension = ".bz2"
 
  Dialog.Filter = ["*.csv", "CSV-Datei", "*", "Alle Dateien"]
  Dialog.Path = User.Home
  Dialog.Title = "Wählen Sie eine Datei aus!"
  If Dialog.OpenFile() Then Return
 
  sFileSource = Dialog.Path
  sFileTarget = sFileSource & sExtension
 
  Cp.Type = "bzlib2"
  Cp.File(sFileSource, sFileTarget, SpinBoxZLIB.Value)
 
End ' btnCompressBZLIB2_Click()

28.1.1.2 Kommentare

  • Zuerst werden die Bereiche für den Kompressionsgrad festgelegt (SpinBoxen) und der Standard-Kompressionsgrad für die beiden Kompressionstreiber festgesetzt.
  • Dann wird ein Compress-Objekt erzeugt und es erfolgt die Festlegung der Datei-Extension für den verwendeten Kompressionstreiber.
  • Danach können Sie im Dialog die zu komprimierende Datei auswählen. Der Datei-Filter ist im Projekt auf csv-Dateien eingestellt. Diese Einstellung können Sie an Ihre Vorstellungen anpassen. Die generierte Archiv-Datei mit der zugewiesenen Extension hat im vorliegenden Fall den gleichen Namen wie die Original-Datei und wird im gleichen Verzeichnis abgespeichert wie die Original-Datei.
  • Abschließend wird die ausgewählte Datei nach dem gewählten Algorithmus (Type) und mit dem eingestellten Kompressionsgrad (SpinBox) unter Verwendung der Pfade für die von Quell- und Ziel-Datei verpackt.

Download

Wir verwenden Cookies, um unser Internetangebot optimal zu gestalten. Durch weitere Nutzung dieser Webseite stimmen Sie der Verwendung von Cookies zu. Informationen zu Cookies erhalten Sie in unserer Datenschutzerklärung
k28/k28.1/k28.1.1/start.txt · Zuletzt geändert: 20.06.2016 (Externe Bearbeitung)

Seiten-Werkzeuge