Ruby Examples

ChilkatHOMEASPVisual BasicVB.NETC#Visual C++CMFCDelphiFoxProJavaPerlPHPPythonRubySQL ServerVBScript

Ruby
Examples

Quick Start
Ruby Unicode
Ruby Byte Array
Ruby Certs
Ruby Email
Ruby Encryption
Ruby FTP
HTML-to-XML
Ruby HTTP
Ruby IMAP
Ruby MHT
Ruby MIME
Ruby S/MIME
Ruby Signatures
Ruby RSA
Ruby Socket
Ruby Spider
Ruby Tar
Ruby Upload
Ruby XML
Ruby XMP
Ruby Zip

More Examples...
String
Email Object
POP3
SMTP
RSS
Atom
Self-Extractor
Service
PPMD
Deflate
Bzip2
DH Key Exchange
DSA
SSH Key
SSH
SSH Tunnel
SFTP

Unreleased...
LZW
Bz2
Icon

 

 

 

 

 

 

 

PPMD String Compression

Demonstrates string compression using PPMD.

The functionality in this example is available in pre-release only:

Download Chilkat Ruby Library (Pre-Release)

require 'chilkat'

compress = Chilkat::CkCompression.new()

#  Any string argument automatically begins a 30-day trial.
success = compress.UnlockComponent("30-day trial")
if (success != true)
    print "Compression component unlock failed" + "\n"
    exit
end

compress.put_Algorithm("ppmd")

#  Create a long string to compress.
strData = "abcdefg1122334455667788"
strData = strData + "\r\n"
for i in 0 .. 99
    strData = strData + "abcdefg1122334455667788"
    strData = strData + "\r\n"
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.put_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.put_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 == nil )
    print compress.lastErrorText() + "\n"
    exit
end

#  Display the compressed string.
#  The result will be:
#  ec8YZ5vk9za18d0plwuV7R65em9OZge9gJXht/QAAAAAAAAAABNOZQAAKw==
print compressedStr + "\n";

#  Decompress back to the original:

strOriginal = compress.decompressStringENC(compressedStr)

#  Display the uncompressed original:
print "--- Original ---" + "\n";
print strOriginal + "\n";
 

Need a specific example? Send a request to support@chilkatsoft.com

© 2000-2008 Chilkat Software, Inc. All Rights Reserved.