Think Tank Review of TCompress and TCompLHA Data Compression Components for Delphi and C++ Builder

TCompress logo  TCompLHA logo

Review of TCompress and TCompLHA

File, Database and LHA Compression Components for Delphi and C++ Builder

Reviewed by The Think Tank

Please note: this review is reproduced in complete and unedited form.
Opinions expressed therein are solely those of the author.

Instantly Add the Most Advanced Compression Algorithms to Your Delphi Programs with TCompress and TCompLHA!

If you are a programmer, you are always looking for ways to make your job easier by finding well-written, reliable, and cost-effective units or components that can instantly perform a task you require. One such situation is data compression. No programmer wants or needs to go through the hassle of developing his/her own compression components, especially in lieu of working on the overall application itself. South Pacific Information Services Ltd. has created exactly such compression components not only for all versions of Delphi, but for all versions of C++ Builder as well -- six compilers in all. Our tests were performed with the Delphi 3.0 environment.

The two compression components available are TCompress and TCompLHA, and both are offered with the complete component source code (for a very reasonable extra fee), so that you can make any modifications or additions you may need in a compression component. We analyzed the source code very closely, and we must say that we were quite impressed with it. The code is very straight forward and well documented, and we had no problems following through the execution flow of the code in either module. What truly impressed us was SPIS's use of assembler code to assure that the compression/decompression routines were absolutely as fast as possible. Their efforts were not wasted, because we were quite frankly amazed with not only the speed, but the compression ratios achieved by both modules.

The TCompress Package includes four data-compression components:

  • TCompress -- General-purpose compression component
  • TCDBMemo -- Compression enabled DBMemo component
  • TCDBImage -- Compression enabled DBImage component
  • TCDBRichText -- Compression enabled DBRichEdit component (Delphi 3.0 and above only)

The TCompLHA Package contains two data-compression components:

  • TCompLHA -- An LHA archive compression component
  • TSegLHA -- Component to manage the splitting of LHA archives across multiple files (or disks)

The primary difference between the two is that, although TCompress utilizes many well known and powerful compression algorithms (such as RLE, LZH, and LZH5), the resulting compressed data structures are a proprietary format that requires the TCompress component to decompress them. TCompLHA, however, creates compressed files and data structures that are compatible with LZH archive file -- so you can create files that are compatible with any program that can compress/decompress LZH files, such as WinZip. Installation was a breeze for both components, and the well-written and straight-forward sample code provided allowed us to get started very quickly in utilizing the components. In addition, through a direct comparison of compression speed and size reduction as compared to WinZip, we were extremely impressed with TCompLHA's performance -- even on files that are considered difficult to compress, such as EXE files.

One of the nicest features about the TCompress components is that it does support three different compression algorithms -- RLE, LZH, and LZH5, including the ability to incorporate your own custom routines if you so desire. For our tests, we utilized the LZH5 compression method, which we believe to be the most advanced. TCompress includes many features for increased functionality and ease-of-use. For example, you can compress/decompress streams or long strings -- a great advantage. You also have the option to add built-in data encryption to the compression module's output! And of course, compression statistics are readily and easily available from directly within the component. To say the least, for ease of use, speed, reliability, functionality, and robustness of implementation, these components are simply outstanding!

The data-aware compression components were also quite easy to use. In addition to the standard properties of DB components, these components allow you to specify which TCompress component to use for the actual compression work, as well as which compression algorithm you wish to utilize.

If you do require industry-compatible compression standards, then TCompLHA is what you are looking for. TCompLHA is much more "file-oriented" -- and its main focus is the creation and management of standard "LZH" format files. The component also comes with some excellent sample projects, which include a highly efficient "Self-Extracting EXE" install program!

In conclusion, both components were extremely easy to use and we would highly recommend them to anyone who requires a highly efficient and cost effective data compression solution for your programs. In addition, the availability of complete source code means that you are in no way limited by what you can achieve with these components. We highly recommend you stop by the SPIS web site (spis.co.nz) and see for yourself how these components can save you a lot of time and heartache.