FoxPro Examples

ChilkatHOMEAndroid™ASPVisual BasicVB.NETC#iOS (IPhone)Objective-CC++CMFCDelphiFoxProJavaPerl
PHP ExtensionPHP ActiveXPythonPowerShellRubySQL ServerVBScript

Visual FoxPro Examples

Bounced Mail
Bz2
Character Encoding
CSV
Digital Certificates
Digital Signatures
Email
Email Object
FTP
HTML Conversion
HTTP
IMAP
Encryption
MHT / HTML Email
POP3
RSA
S/MIME
Socket
Spider
SFTP
SMTP
SSH
SSH Key
SSH Tunnel
String
Tar
Upload
XML
XMP
Zip Compression
Self-Extractor

More Examples...
Amazon S3
DKIM / DomainKey
NTLM
RSS
Atom
Byte Array
Service
PPMD
Deflate
DH Key Exchange
DSA
FileAccess
Bzip2
LZW

 

Non-Chilkat Links
Text and String Handling

PPMD Streaming String Compression

Demonstrates streaming string compression using PPMD. Data may be compressed in chunks by initially calling one of the BeginCompress* methods, followed by 0 or more calls to a MoreCompress* method, and terminating with a call to an EndCompress* method.

Likewise, data may be decompressed by calling a BeginDecompress* method, followed by 0 or more MoreDecompress* calls, and ending with an EndDecompress* method call.

This example demonstrates string-to-string compression and decompression in chunks.

Download Chilkat Compression ActiveX

LOCAL loCompress
LOCAL lnSuccess
LOCAL lcStrData
LOCAL i
LOCAL lcStrCompressed
LOCAL lcStrOriginal
LOCAL lcChunk1
LOCAL lcChunk2
LOCAL lcChunk3
LOCAL lcChunk4

loCompress = CreateObject('Chilkat.Compression')

*  Any string argument automatically begins a 30-day trial.

lnSuccess = loCompress.UnlockComponent("30-day trial")
IF (lnSuccess <> 1) THEN
    =MESSAGEBOX("Compression component unlock failed")
    QUIT
ENDIF

loCompress.Algorithm = "ppmd"
loCompress.Charset = "ansi"
loCompress.EncodingMode = "base64"

*  Create a long string to compress.
lcStrData = "abcdefg1122334455667788"
lcStrData = lcStrData + CHR(13)+CHR(10)

*  Note: BeginCompressStringENC may return a zero-length
*  string.  This is normal if the input is buffered and no
*  compressed data is yet available.
*  However, a null reference indicates an error -- which is
*  generally only possible if the component was never unlocked.
lcStrCompressed = loCompress.BeginCompressStringENC(lcStrData)

*  Compress 100 more chunks of data.  Each call to
*  MoreCompressStringENC may or may not produce additional
*  compressed output.
FOR i = 0 TO 99
    lcStrData = "abcdefg1122334455667788"
    lcStrData = lcStrData + CHR(13)+CHR(10)

    lcStrCompressed = lcStrCompressed + loCompress.MoreCompressStringENC(lcStrData)
NEXT

*  Finalize the compression with a single call to EndCompressStringENC:
lcStrCompressed = lcStrCompressed + loCompress.EndCompressStringENC()

*  Display the compressed string.
*  The result will be:
*  ec8YZ5vk9za18d0plwuV7R65em9OZge9gJXht/QAAAAAAAAAABNOZQAAKw==

? lcStrCompressed

*  Decompress back to the original in a single call.

lcStrOriginal = loCompress.DecompressStringENC(lcStrCompressed)

*  Display the uncompressed original:
? "--- Original ---"
? lcStrOriginal

*  Decompress in multiple calls.  It doesn't matter how the
*  compressed data is split -- it could be fed to the decompressor
*  one char at a time if desired.

lcChunk1 = "ec8YZ5vk9za1"

lcChunk2 = "8d0p"

lcChunk3 = "lwuV7R65em9OZge9gJXht/QAAAA"

lcChunk4 = "AAAAAABNOZQAAKw=="

lcStrOriginal = ""
lcStrOriginal = loCompress.BeginDecompressStringENC(lcChunk1)
lcStrOriginal = lcStrOriginal + loCompress.MoreDecompressStringENC(lcChunk2)
lcStrOriginal = lcStrOriginal + loCompress.MoreDecompressStringENC(lcChunk3)
lcStrOriginal = lcStrOriginal + loCompress.MoreDecompressStringENC(lcChunk4)
lcStrOriginal = lcStrOriginal + loCompress.EndDecompressStringENC()

*  Display the uncompressed original after decompressing in chunks:
? "--- Original after Decompressing from Chunks ---"
? lcStrOriginal

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

Mail Component · .NET Email Component · ASP Mail Component · XML Parser