Difference between revisions of "Zlibar/de"

From Free Pascal wiki
Jump to navigationJump to search
 
Line 1: Line 1:
 
===Über===
 
===Über===
zlibar is a unit that contains components to create a single compressed file archive that contains many files. It uses paszlib that is included with FreePascal so there are no external library requirements
+
zlibar ist eine Unit, die Komponenten enthält, um ein einfaches komprimiertes Dateiarchiv zu erstellen, das viele Dateien enthält. Sie verwendet paszlib, welches in FreePascal enthalten ist, so daß keine externe Bibliothek benötigt wird.
  
The two main components are :
+
Die zwei Hauptkomponenten sind :
* TZlibWriteArchive - Used to create an archive
+
* TZlibWriteArchive - Verwendet um ein Archiv zu erstellen
* TZlibReadArchive - Used to read the archive and extract it's files
+
* TZlibReadArchive - Verwendet um ein Archiv zu lesen und dessen Dateien zu extrahieren
  
 
Features von TZlibWriteArchive :
 
Features von TZlibWriteArchive :
  
* Create the Archive file in a stream, allowing you to save it to a file or do something else creative with it
+
* Erzeugt das Archiv in einem Datenstrom, erlaubt ihnen es in eine Datei zu speichern oder etwas anderes kreatives damit zu machen
* Each file in the archive is stored with a MD5 checksum
+
* Jede Datei im Archiv wird mit einer MD5 Prüfsumme abgelegt
* Each file can be stored with a relative path
+
* Jede Datei kann mit einem relativem Pfad abgelegt werden
* Contains progress callbacks to inform the program of the current file and all files progress
+
* Enthält Fortschrittsrückmeldungen, um das Programm über den Fortschritt der aktuellen Datei und aller Dateien zu informieren
  
 
Features von TZlibReadArchive :
 
Features von TZlibReadArchive :
  
* Loads the archive from a TStream.
+
* Lädt das Archiv aus einem TStream.
* Contains a progress callback to inform the program of the extraction progress
+
* Enthält eine Fortschrittsrückmeldung, um das Programm über den Fortschritt des Extraktionsprozesses zu informieren
* Files in the archive are extractable by an index number and are extracted to a TStream
+
* Dateien im Archiv sind über eine Indexnummer extrahierbar und werden in ein TStream extrahiert
  
The download contains a demo program, and the unit. Also a package file.
+
Der Download enthält ein Demoprogramm und die Unit. Ebenso eine Package Datei.
  
Although not tested, it should work on any platform.
+
Obwohl nicht getestet, sollte sie auf jeder Plattform funktionieren.
  
'''Changes in versions''' :
+
'''Änderungen in den Versionen''' :
  
 
0.2.1
 
0.2.1

Revision as of 13:59, 11 December 2005

Über

zlibar ist eine Unit, die Komponenten enthält, um ein einfaches komprimiertes Dateiarchiv zu erstellen, das viele Dateien enthält. Sie verwendet paszlib, welches in FreePascal enthalten ist, so daß keine externe Bibliothek benötigt wird.

Die zwei Hauptkomponenten sind :

  • TZlibWriteArchive - Verwendet um ein Archiv zu erstellen
  • TZlibReadArchive - Verwendet um ein Archiv zu lesen und dessen Dateien zu extrahieren

Features von TZlibWriteArchive :

  • Erzeugt das Archiv in einem Datenstrom, erlaubt ihnen es in eine Datei zu speichern oder etwas anderes kreatives damit zu machen
  • Jede Datei im Archiv wird mit einer MD5 Prüfsumme abgelegt
  • Jede Datei kann mit einem relativem Pfad abgelegt werden
  • Enthält Fortschrittsrückmeldungen, um das Programm über den Fortschritt der aktuellen Datei und aller Dateien zu informieren

Features von TZlibReadArchive :

  • Lädt das Archiv aus einem TStream.
  • Enthält eine Fortschrittsrückmeldung, um das Programm über den Fortschritt des Extraktionsprozesses zu informieren
  • Dateien im Archiv sind über eine Indexnummer extrahierbar und werden in ein TStream extrahiert

Der Download enthält ein Demoprogramm und die Unit. Ebenso eine Package Datei.

Obwohl nicht getestet, sollte sie auf jeder Plattform funktionieren.

Änderungen in den Versionen :

0.2.1

  • archives should work across different endian machines now.
  • fixed bad memory corruption bug
  • now requires LCL for endian safeness

Autor

Andrew Haines

Lizenz

zlibar.pas is distributed with the same modified LGPL as the LCL, so it is possible to use it in proprietary programs.


Download

The latest stable release can be found on the Lazarus CCR Files page.

Abhängigkeiten / Systemvoraussetzungen

  • FreePascal
  • Demo Program requires Lazarus
  • LCL (for endian safe routines)

Issues: Tested on Linux. Needs testing on Windows.

Verwendung

Add the unit "zlibar" to your uses section.

TZLibWriteArchive

Beispiel:

 var
 Zar: TZlibWriteArchive;
 Stream: TMemoryStream;
 X: Integer;
 begin    
   Stream := TMemoryStream.Create;
   Zar := TZlibWriteArchive.Create;    
   Zar.OutStream := Stream;
 
   Zar.InputFiles.Add('/path/to/MyFileName1');
   Zar.InputFiles.Add('/path/to/MyFileName2');
 
   Zar.CreateArchive;
 
   Stream.SaveToFile('MySavedFileName');
   Zar.Free;
   Stream.Free;
 end;

TZlibReadArchive

Beispiel:

 var
 ArchStream: TMemoryStream;
 FileStream: TMemoryStream;
 ZReadArc: TZlibReadArchive;
 X: Integer;
 DestPath: String;
 begin
   ArchStream := TMemoryStream.Create;
   FileStream := TmemoryStream.Create;
   
   ArchStream.LoadFromFile('ArchiveFileName');
   ZReadArc:= TZlibReadArchive.Create(ArchStream);
   DestPath := '/Some/Path';
   for X := 0 to ZReadArc.Count -1 do begin    
     ZReadArc.ExtractFileToStream(X, FileStream);
     FileStream.SaveToFile(DestPath+ZReadStream.FilesInArchive[X].FilePath+'/'+ZReadStream.FilesInArchive[X].FIleName);
     FileStream.Position := 0;
     FileStream.Size := 0;
   end;
   ZReadArc.Free;
   ArchStream.Free;
   FileStream.Free;  
 end;