pasbzip.pas 883 B

1234567891011121314151617181920212223242526272829303132333435
  1. program pasbzip;
  2. uses objects,bzip2;
  3. var infile,outfile:Tbufstream;
  4. decoder:Tbzip2_decode_stream;
  5. a:array[1..4096] of byte;
  6. i,readsize:cardinal;
  7. begin
  8. assign(output,'pasbzip.out');
  9. rewrite(output);
  10. if paramcount<>1 then
  11. writeln('Usage: pasbunzip <file>')
  12. else
  13. begin
  14. infile.init(paramstr(1),stopenread,4096);
  15. outfile.init('OUTFILE',stcreate,4096);
  16. decoder.init(@infile);
  17. if decoder.status<>stok then
  18. writeln('Fout: ',decoder.status,' ',decoder.errorinfo);
  19. repeat
  20. readsize:=4096;
  21. decoder.read(a,readsize);
  22. dec(readsize,decoder.short);
  23. outfile.write(a,readsize);
  24. until decoder.status<>0;
  25. if decoder.status<>stok then
  26. writeln('Fout: ',decoder.status,' ',decoder.errorinfo);
  27. decoder.done;
  28. infile.done;
  29. outfile.done;
  30. end;
  31. close(output);
  32. end.