# Zlibar

Deutsch (de) English (en) français (fr)

## Contents

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 :

• TZlibWriteArchive - Used to create an archive
• TZlibReadArchive - Used to read the archive and extract it's files

Features of TZlibWriteArchive :

• Create the Archive file in a stream, allowing you to save it to a file or do something else creative with it
• Each file in the archive is stored with a MD5 checksum
• Each file can be stored with a relative path
• Contains progress callbacks to inform the program of the current file and all files progress

• Loads the archive from a TStream.
• Contains a progress callback to inform the program of the extraction progress
• Files in the archive are extractable by an index number and are extracted to a TStream

The download contains a demo program, and the unit. Also a package file.

Although not tested, it should work on any platform.

Changes in versions :

0.2.3 (19/02/2012)

• Fixed compilation with newer versions of fpc

0.2.2

• LCL requirement removed
• FPC version 2.0.4 (or a recent development version) required.
• Compatible with FPC 2.0.4 ( go figure.... ;)

0.2.1

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

### Author

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

#### Releases

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

#### Subversion

zlibar is available in the lazarus code and component repository since version 0.2.3

 svn co https://lazarus-ccr.svn.sourceforge.net/svnroot/lazarus-ccr/components/zlibar zlibar


### Dependencies / System Requirements

• FreePascal
• Demo Program requires Lazarus

Issues: Tested on Linux. Needs testing on Windows.
Confirmed working on Windows
--Eyecreate 03:22, 23 February 2007 (CET)

Version 0.2.2 will not compile on newer versions of fpc (>2.4.2) Use a version newer than 0.2.2 or subversion.

### Usage

#### TZLibWriteArchive

Example:

var
Zar: TZlibWriteArchive;
Stream: TMemoryStream;
X: Integer;
begin
Stream := TMemoryStream.Create;
Zar := TZlibWriteArchive.Create;
Zar.OutStream := Stream;

Zar.CreateArchive;

Stream.SaveToFile('MySavedFileName');
Zar.Free;
Stream.Free;
end;

Example:

var
ArchStream: TMemoryStream;
FileStream: TMemoryStream;
X: Integer;
DestPath: String;
begin
ArchStream := TMemoryStream.Create;
FileStream := TmemoryStream.Create;

end;