Difference between revisions of "Zlibar/de"

From Free Pascal wiki
Jump to navigationJump to search
 
m (Fixed syntax highlighting; deleted category included in page template)
 
(15 intermediate revisions by 6 users not shown)
Line 1: Line 1:
===Über===
+
{{Zlibar}}
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
 
  
The two main components are :
+
=== Über ===
* TZlibWriteArchive - Used to create an archive
+
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.
* TZlibReadArchive - Used to read the archive and extract it's files
+
 
 +
Die zwei Hauptkomponenten sind :
 +
* TZlibWriteArchive - Archiv erstellen
 +
* TZlibReadArchive - Archiv lesen und seine Dateien 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. Das 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
 +
 
 +
Der Download enthält ein Demoprogramm und die Unit. Ebenso eine Package-Datei.
 +
 
 +
Obwohl nicht getestet, sollte sie auf jeder Plattform funktionieren.
  
The download contains a demo program, and the unit. Also a package file.
+
'''Änderungen in den Versionen''' :
  
Although not tested, it should work on any platform.
+
0.2.2
  
'''Changes in versions''' :
+
* 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
  
* archives should work across different endian machines now.
+
* Archive sollten jetzt funktionieren über Maschinen mit verschiedenen Bytefolgen (endian) hinweg.
* fixed bad memory corruption bug
+
* Berichtigter bad memory corruption Bug
* now requires LCL for endian safeness
+
* Benötigt jetzt die LCL für endian Sicherheit
  
===Autor===
+
=== Autor ===
 
[[User:AndrewH|Andrew Haines]]  
 
[[User:AndrewH|Andrew Haines]]  
  
===Lizenz===
+
=== Lizenz ===
zlibar.pas is distributed with the same modified LGPL as the LCL, so it is possible to use it in proprietary programs.
+
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/projects/lazarus-ccr/files/ZlibAr/ Lazarus CCR Files Seite] zu finden.
The latest stable release can be found on the [http://sourceforge.net/project/showfiles.php?group_id=92177 Lazarus CCR Files page].
 
  
===Abhängigkeiten / Systemvoraussetzungen===
+
=== Abhängigkeiten / Systemvoraussetzungen ===
 
* FreePascal
 
* FreePascal
* Demo Program requires Lazarus
+
* Demoprogramm benötigt Lazarus
* LCL (for endian safe routines)
+
* LCL (für endian sichere Routinen)
 +
 
 +
Probleme:
 +
Getestet unter Linux.
 +
Benötigt Tests unter Windows.
  
Issues:
+
=== Verwendung ===
Tested on Linux.
+
Fügen Sie die Unit "zlibar" zu Ihrem Abschnitt "uses" hinzu.
Needs testing on Windows.
 
  
===Verwendung===
+
==== TZLibWriteArchive ====
Add the unit "zlibar" to your uses section.
 
====TZLibWriteArchive====
 
 
Beispiel:
 
Beispiel:
  
  var
+
<syntaxhighlight lang=pascal>var
 
   Zar: TZlibWriteArchive;
 
   Zar: TZlibWriteArchive;
 
   Stream: TMemoryStream;
 
   Stream: TMemoryStream;
 
   X: Integer;
 
   X: Integer;
  begin     
+
begin     
    Stream := TMemoryStream.Create;
+
  Stream := TMemoryStream.Create;
    Zar := TZlibWriteArchive.Create;     
+
  Zar := TZlibWriteArchive.Create;     
    Zar.OutStream := Stream;
+
  Zar.OutStream := Stream;
    
+
 
    Zar.InputFiles.Add('/path/to/MyFileName1');
+
   Zar.InputFiles.Add('/Pfad/zu/MyFileName1');
    Zar.InputFiles.Add('/path/to/MyFileName2');
+
  Zar.InputFiles.Add('/Pfad/zu/MyFileName2');
    
+
 
    Zar.CreateArchive;
+
   Zar.CreateArchive;
    
+
 
    Stream.SaveToFile('MySavedFileName');
+
   Stream.SaveToFile('MySavedFileName');
    Zar.Free;
+
  Zar.Free;
    Stream.Free;
+
  Stream.Free;
  end;
+
end;</syntaxhighlight>
  
====TZlibReadArchive====
+
==== TZlibReadArchive ====
 
Beispiel:  
 
Beispiel:  
  
  var
+
<syntaxhighlight lang=pascal>var
 
   ArchStream: TMemoryStream;
 
   ArchStream: TMemoryStream;
 
   FileStream: TMemoryStream;
 
   FileStream: TMemoryStream;
Line 83: Line 91:
 
   X: Integer;
 
   X: Integer;
 
   DestPath: String;
 
   DestPath: String;
  begin
+
begin
    ArchStream := TMemoryStream.Create;
+
  ArchStream := TMemoryStream.Create;
    FileStream := TmemoryStream.Create;
+
  FileStream := TmemoryStream.Create;
   
+
 
    ArchStream.LoadFromFile('ArchiveFileName');
+
  ArchStream.LoadFromFile('ArchiveFileName');
    ZReadArc:= TZlibReadArchive.Create(ArchStream);
+
  ZReadArc:= TZlibReadArchive.Create(ArchStream);
    DestPath := '/Some/Path';
+
  DestPath := '/Irgendein/Pfad';
    for X := 0 to ZReadArc.Count -1 do begin     
+
  for X := 0 to ZReadArc.Count -1 do begin     
      ZReadArc.ExtractFileToStream(X, FileStream);
+
    ZReadArc.ExtractFileToStream(X, FileStream);
      FileStream.SaveToFile(DestPath+ZReadStream.FilesInArchive[X].FilePath+'/'+ZReadStream.FilesInArchive[X].FIleName);
+
    FileStream.SaveToFile(DestPath+ZReadArc.FilesInArchive[X].FilePath+'/'+ZReadArc.FilesInArchive[X].FIleName);
      FileStream.Position := 0;
+
    FileStream.Position := 0;
      FileStream.Size := 0;
+
    FileStream.Size := 0;
    end;
 
    ZReadArc.Free;
 
    ArchStream.Free;
 
    FileStream.Free; 
 
 
   end;
 
   end;
 +
  ZReadArc.Free;
 +
  ArchStream.Free;
 +
  FileStream.Free; 
 +
end;</syntaxhighlight>

Latest revision as of 12: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

Andrew Haines

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;