Difference between revisions of "Zlibar/de"
m |
m (Fixed syntax highlighting; deleted category included in page template) |
||
(7 intermediate revisions by 6 users not shown) | |||
Line 2: | Line 2: | ||
=== Über === | === Über === | ||
− | zlibar ist eine Unit | + | zlibar ist eine Unit mit Komponenten, um ein einfaches komprimiertes Dateiarchiv mit vielen Dateien zu erstellen. Sie verwendet paszlib, das in FreePascal enthalten ist, so dass keine externe Bibliothek benötigt wird. |
Die zwei Hauptkomponenten sind : | Die zwei Hauptkomponenten sind : | ||
− | * TZlibWriteArchive - | + | * TZlibWriteArchive - Archiv erstellen |
− | * TZlibReadArchive - | + | * TZlibReadArchive - Archiv lesen und seine Dateien extrahieren |
Features von TZlibWriteArchive : | Features von TZlibWriteArchive : | ||
− | * Erzeugt das Archiv in einem Datenstrom, | + | * Erzeugt das Archiv in einem Datenstrom. Das 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 im Archiv wird mit einer MD5 Prüfsumme abgelegt | ||
* Jede Datei kann mit einem relativem Pfad abgelegt werden | * Jede Datei kann mit einem relativem Pfad abgelegt werden | ||
Line 21: | Line 21: | ||
* Dateien im Archiv sind über eine Indexnummer extrahierbar und werden in ein TStream extrahiert | * 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. | + | Der Download enthält ein Demoprogramm und die Unit. Ebenso eine Package-Datei. |
Obwohl nicht getestet, sollte sie auf jeder Plattform funktionieren. | Obwohl nicht getestet, sollte sie auf jeder Plattform funktionieren. | ||
'''Änderungen in den Versionen''' : | '''Änderungen in den Versionen''' : | ||
+ | |||
+ | 0.2.2 | ||
+ | |||
+ | * LCL Voraussetzung entfernt | ||
+ | * FPC Version 2.0.4 (oder eine aktuelle Entwicklerversion) wird benötigt. | ||
+ | * Kompatibel mit FPC 2.0.4 ( go figure.... ;) | ||
0.2.1 | 0.2.1 | ||
− | * Archive sollten jetzt funktionieren über Maschinen mit | + | * Archive sollten jetzt funktionieren über Maschinen mit verschiedenen Bytefolgen (endian) hinweg. |
* Berichtigter bad memory corruption Bug | * Berichtigter bad memory corruption Bug | ||
* Benötigt jetzt die LCL für endian Sicherheit | * Benötigt jetzt die LCL für endian Sicherheit | ||
Line 37: | Line 43: | ||
=== Lizenz === | === Lizenz === | ||
− | zlibar.pas wird mit der selben modifizierten LGPL wie die LCL verteilt | + | zlibar.pas wird mit der selben modifizierten LGPL wie die LCL verteilt. Deshalb kann sie in geschützten Programmen verwendet werden. |
=== Download === | === Download === | ||
− | Das neueste stabile Release ist auf der [http://sourceforge.net/ | + | Das neueste stabile Release ist auf der [http://sourceforge.net/projects/lazarus-ccr/files/ZlibAr/ Lazarus CCR Files Seite] zu finden. |
=== Abhängigkeiten / Systemvoraussetzungen === | === Abhängigkeiten / Systemvoraussetzungen === | ||
Line 48: | Line 54: | ||
Probleme: | Probleme: | ||
− | + | Getestet unter Linux. | |
Benötigt Tests unter Windows. | Benötigt Tests unter Windows. | ||
=== Verwendung === | === Verwendung === | ||
− | Fügen | + | Fügen Sie die Unit "zlibar" zu Ihrem Abschnitt "uses" hinzu. |
+ | |||
==== TZLibWriteArchive ==== | ==== TZLibWriteArchive ==== | ||
Beispiel: | Beispiel: | ||
− | + | <syntaxhighlight lang=pascal>var | |
Zar: TZlibWriteArchive; | Zar: TZlibWriteArchive; | ||
Stream: TMemoryStream; | Stream: TMemoryStream; | ||
X: Integer; | X: Integer; | ||
− | + | begin | |
− | + | Stream := TMemoryStream.Create; | |
− | + | Zar := TZlibWriteArchive.Create; | |
− | + | Zar.OutStream := Stream; | |
− | + | ||
− | + | Zar.InputFiles.Add('/Pfad/zu/MyFileName1'); | |
− | + | Zar.InputFiles.Add('/Pfad/zu/MyFileName2'); | |
− | + | ||
− | + | Zar.CreateArchive; | |
− | + | ||
− | + | Stream.SaveToFile('MySavedFileName'); | |
− | + | Zar.Free; | |
− | + | Stream.Free; | |
− | + | end;</syntaxhighlight> | |
==== TZlibReadArchive ==== | ==== TZlibReadArchive ==== | ||
Beispiel: | Beispiel: | ||
− | + | <syntaxhighlight lang=pascal>var | |
ArchStream: TMemoryStream; | ArchStream: TMemoryStream; | ||
FileStream: TMemoryStream; | FileStream: TMemoryStream; | ||
Line 84: | Line 91: | ||
X: Integer; | X: Integer; | ||
DestPath: String; | DestPath: String; | ||
− | + | begin | |
− | + | ArchStream := TMemoryStream.Create; | |
− | + | FileStream := TmemoryStream.Create; | |
− | + | ||
− | + | ArchStream.LoadFromFile('ArchiveFileName'); | |
− | + | ZReadArc:= TZlibReadArchive.Create(ArchStream); | |
− | + | DestPath := '/Irgendein/Pfad'; | |
− | + | for X := 0 to ZReadArc.Count -1 do begin | |
− | + | ZReadArc.ExtractFileToStream(X, FileStream); | |
− | + | FileStream.SaveToFile(DestPath+ZReadArc.FilesInArchive[X].FilePath+'/'+ZReadArc.FilesInArchive[X].FIleName); | |
− | + | FileStream.Position := 0; | |
− | + | FileStream.Size := 0; | |
− | |||
− | |||
− | |||
− | |||
end; | end; | ||
+ | ZReadArc.Free; | ||
+ | ArchStream.Free; | ||
+ | FileStream.Free; | ||
+ | end;</syntaxhighlight> |
Latest revision as of 11:46, 3 March 2020
│
Deutsch (de) │
English (en) │
Über
zlibar ist eine Unit mit Komponenten, um ein einfaches komprimiertes Dateiarchiv mit vielen Dateien zu erstellen. Sie verwendet paszlib, das in FreePascal enthalten ist, so dass keine externe Bibliothek benötigt wird.
Die zwei Hauptkomponenten sind :
- TZlibWriteArchive - Archiv erstellen
- TZlibReadArchive - Archiv lesen und seine Dateien extrahieren
Features von TZlibWriteArchive :
- Erzeugt das Archiv in einem Datenstrom. Das 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.2
- LCL Voraussetzung entfernt
- FPC Version 2.0.4 (oder eine aktuelle Entwicklerversion) wird benötigt.
- Kompatibel mit FPC 2.0.4 ( go figure.... ;)
0.2.1
- Archive sollten jetzt funktionieren über Maschinen mit verschiedenen Bytefolgen (endian) hinweg.
- Berichtigter bad memory corruption Bug
- Benötigt jetzt die LCL für endian Sicherheit
Autor
Lizenz
zlibar.pas wird mit der selben modifizierten LGPL wie die LCL verteilt. Deshalb kann sie in geschützten Programmen verwendet werden.
Download
Das neueste stabile Release ist auf der Lazarus CCR Files Seite zu finden.
Abhängigkeiten / Systemvoraussetzungen
- FreePascal
- Demoprogramm benötigt Lazarus
- LCL (für endian sichere Routinen)
Probleme: Getestet unter Linux. Benötigt Tests unter Windows.
Verwendung
Fügen Sie die Unit "zlibar" zu Ihrem Abschnitt "uses" hinzu.
TZLibWriteArchive
Beispiel:
var
Zar: TZlibWriteArchive;
Stream: TMemoryStream;
X: Integer;
begin
Stream := TMemoryStream.Create;
Zar := TZlibWriteArchive.Create;
Zar.OutStream := Stream;
Zar.InputFiles.Add('/Pfad/zu/MyFileName1');
Zar.InputFiles.Add('/Pfad/zu/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 := '/Irgendein/Pfad';
for X := 0 to ZReadArc.Count -1 do begin
ZReadArc.ExtractFileToStream(X, FileStream);
FileStream.SaveToFile(DestPath+ZReadArc.FilesInArchive[X].FilePath+'/'+ZReadArc.FilesInArchive[X].FIleName);
FileStream.Position := 0;
FileStream.Size := 0;
end;
ZReadArc.Free;
ArchStream.Free;
FileStream.Free;
end;