PowerShell
PowerShell
Compress Text Feed to Binary
See more Compression Examples
This example receives incoming text data in chunks, compresses as a stream, and accumulates the compressed binary data.Chilkat PowerShell Downloads
Add-Type -Path "C:\chilkat\ChilkatDotNet47-x64\ChilkatDotNet47.dll"
$success = $false
# This example assumes the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
$bdCompressed = New-Object Chilkat.BinData
$compress = New-Object Chilkat.Compression
$compress.Algorithm = "deflate"
$compress.Charset = "utf-8"
$sbUncompressedChunk = New-Object Chilkat.StringBuilder
$compress.FirstChunk = $true
$compress.LastChunk = $false
for ($i = 0; $i -le 24; $i++) {
if ($i -eq 24) {
$compress.LastChunk = $true
}
$sbUncompressedChunk.Clear()
$sbUncompressedChunk.AppendInt($i)
$sbUncompressedChunk.Append(": This is a line of data to be compressed...`r`n")
$compress.CompressSb($sbUncompressedChunk,$bdCompressed)
$compress.FirstChunk = $false
}
# Show the compressed data in hex format:
$("The hex encoded compressed text:")
$($bdCompressed.GetEncoded("hex"))
# Now decompress in one call. It is important to set both FirstChunk and LastChunk = $true
$bdDecompressed = New-Object Chilkat.BinData
$compress.FirstChunk = $true
$compress.LastChunk = $true
$success = $compress.DecompressBd2($bdCompressed,$bdDecompressed)
if ($success -eq $false) {
$($compress.LastErrorText)
exit
}
$originalText = $bdDecompressed.GetString("utf-8")
$($originalText)