Chilkat
HOME
Android™
ASP
Visual Basic
VB.NET
C#
iOS (IPhone)
Objective-C
C++
C
MFC
Delphi
FoxPro
Java
Perl
PHP Extension
PHP ActiveX
Python
PowerShell
Ruby
SQL Server
VBScript
PPMD String CompressionDemonstrates string compression using PPMD.
uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, CHILKATCOMPRESSIONLib_TLB, OleCtrls; ... procedure TForm1.Button1Click(Sender: TObject); var compress: TChilkatCompression; success: Integer; strData: String; i: Integer; compressedStr: String; strOriginal: String; begin compress := TChilkatCompression.Create(Self); // Any string argument automatically begins a 30-day trial. success := compress.UnlockComponent('30-day trial'); if (success <> 1) then begin ShowMessage('Compression component unlock failed'); Exit; end; compress.Algorithm := 'ppmd'; // Create a long string to compress. strData := 'abcdefg1122334455667788'; strData := strData + #13#10; for i := 0 to 99 do begin strData := strData + 'abcdefg1122334455667788'; strData := strData + #13#10; end; // Depending on the programming language, the string // may be Unicode. Tell the component to convert to // ansi (1-byte/char) prior to compression: compress.Charset := 'ansi'; // Compressed data is binary, meaning that all byte values // from 0 to 255 are possible. The result would not be // a printable string. To receive a printable string (us-ascii), // the resultant compressed data should be encoded using // an encoding such as base64. Set the EncodingMode // property to determine the output encoding: // (Valid choices are "base64", "hex", "url", and others) compress.EncodingMode := 'base64'; // Note: Base64 encoding expands the compressed data by // 4/3rds because each 3 bytes of binary data are represented // by 4 printable chars. Hex, for example, doubles the output // size because each byte is represented by 2 printable chars. // PPMD compress the string: compressedStr := compress.CompressStringENC(strData); if (compressedStr = NULL ) then begin ShowMessage(compress.LastErrorText); Exit; end; // Display the compressed string. // The result will be: // ec8YZ5vk9za18d0plwuV7R65em9OZge9gJXht/QAAAAAAAAAABNOZQAAKw== Memo1.Lines.Add(compressedStr); // Decompress back to the original: strOriginal := compress.DecompressStringENC(compressedStr); // Display the uncompressed original: Memo1.Lines.Add('--- Original ---'); Memo1.Lines.Add(strOriginal); end; |
© 2000-2010 Chilkat Software, Inc. All Rights Reserved.