summaryrefslogtreecommitdiff
path: root/fpcsrc/packages/bzip2/examples/pasbzip.pas
blob: b3c5a524cdc0651e45a26fd545ebd8b2d01d258d (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
program pasbzip;

uses objects,bzip2;

var infile,outfile:Tbufstream;
    decoder:Tbzip2_decode_stream;
    a:array[1..4096] of byte;
    i,readsize:cardinal;

begin
  assign(output,'pasbzip.out');
  rewrite(output);
  if paramcount<>1 then
    writeln('Usage: pasbunzip <file>')
  else
    begin
      infile.init(paramstr(1),stopenread,4096);
      outfile.init('OUTFILE',stcreate,4096);
      decoder.init(@infile);
      if decoder.status<>stok then
        writeln('Fout: ',decoder.status,' ',decoder.errorinfo);
      repeat
        readsize:=4096;
        decoder.read(a,readsize);
        dec(readsize,decoder.short);
        outfile.write(a,readsize);
      until decoder.status<>0;
      if decoder.status<>stok then
        writeln('Fout: ',decoder.status,' ',decoder.errorinfo);
      decoder.done;
      infile.done;
      outfile.done;
    end;
    close(output);
end.