I tried with this input data:
{$Mode ObjFPC}{$H+}
{$R *.res}
uses
LizSimple;
var
S: String = 'Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word Word ';
Compressed: String;
begin
S:= S + S + S + S + S + S + S + S + S + S + S + S + S + S + S + S;
Compressed:= LIZ(S);
Writeln(Length(S), ' ', Length(Compressed));
Readln;
end.
The output is:
2720 64
Nice. It works. Good job.
There is possible improvement to your library. Since FPC by default support overloading of functions (and Delphi too by adding "overload" to your function) you may short names of your functions this way:
LIZCompressStreams -> LIZCompress
LIZDecompressStreams -> LIZDecompress
LIZCompressFile -> LIZCompress
LIZDecompressFile -> LIZDecompress
According function will be selected depend on argument you pass into it.