This project will expand the capabilities of a simple decompression wrapper function, DecompressFile(), to allow for (1) support for uncompressed data, and (2) support of multiple instances of compressed data. (1) SUPPORT FOR UNCOMPRESSED DATA Sometimes the data received by DecompressFile() has already been decompressed at the source. This produces an error in DecompressFile (ZLIB_NO_SIGNATURE) and a zero-length output file. Coder must change the behavior of DecompressFile() so that ALL data in the source file, regardless of compression state, is copied to the target file. For example, if there is no compressed data in the source file, the function will produce a verbatim blockcopy. However, of course, any compressed portions detected must be decompressed. (2) MULTIPLE INSTANCES OF COMPRESSED DATA. DecompressFile() decompresses only ONE file within a source file and stops. DecompressFile() must support the existence of multiple compressed files within one source file. The coder must modify DecompressFile() so that ALL compressed data within the source file will be detected and written to the output file. A #13#10 delimiter should be placed in the output stream at the end of a compressed module. (3) TEST FILES These test files are provided for the coder's benefit: [login to view URL] A sample file containing three compressed files concatenated together [login to view URL] Your output should look like this (decompressed) (4) PLATFORM REQUIREMENTS This is a Delphi 3 project, so all coding must be backward compatible to Delphi 3. For those without the ability to test on Delphi 3, buyer will be willing to accept code providing that coder provides support to the buyer to ensure that it compiles under Delphi 3.
## Deliverables
1) Complete and fully-functional working demo in executable form as well as complete source code of all work done. 2) Complete ownership and distribution copyrights to all work purchased.
## Platform
Delphi 3 / Windows 2000