Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(DataFlex) Compress and Decompress Hex StringImagine we have data represented as a hex string. This example demonstrates how to decode, compress, and re-encode to a smaller hex string representing the compressed data. An even better choice is to re-encode to a more compact encoding such as base64. Note: This example requires Chilkat v9.5.0.66 or greater.
Use ChilkatAx-win32.pkg Procedure Test Boolean iSuccess String sStrHex Handle hoCompress Variant vBinDat Handle hoBinDat String sCompressedHex String sCompressedBase64 String sDecompressedHex // This example assumes the Chilkat API to have been previously unlocked. // See Global Unlock Sample for sample code. Move "54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A0D0A" To sStrHex Get Create (RefClass(cComChilkatCompression)) To hoCompress If (Not(IsComObjectCreated(hoCompress))) Begin Send CreateComObject of hoCompress End Set ComAlgorithm Of hoCompress To "deflate" Get Create (RefClass(cComChilkatBinData)) To hoBinDat If (Not(IsComObjectCreated(hoBinDat))) Begin Send CreateComObject of hoBinDat End // Load the hex string into a BinData object. // This decodes the hexidecimal. The decoded bytes will be contained in the BinData. Get ComAppendEncoded Of hoBinDat sStrHex "hex" To iSuccess // Compress the BinData. Get pvComObject of hoBinDat to vBinDat Get ComCompressBd Of hoCompress vBinDat To iSuccess // Get the compressed data in hex format: Get ComGetEncoded Of hoBinDat "hex" To sCompressedHex Showln "compressed hex:" Showln sCompressedHex // The compressed hex is: 0BC94855282CCD4CCE56482ACA2FCF5348CBAF50C82ACD2D484D51C82F4B2D522801CAE72456552AA4E4A7EBF172850C61E5BC5C00 // Even better, get the compressed data in base64 format: // (base64url and modbase64 are other valid choices...) Get ComGetEncoded Of hoBinDat "base64" To sCompressedBase64 Showln "compressed base64:" Showln sCompressedBase64 // The compressed base64 is: C8lIVSgszUzOVkgqyi/PU0jLr1DIKs0tSE1RyC9LLVIoAcrnJFZVKqTkp+vxcoUMYeW8XAA= // Now decompress: Get ComClear Of hoBinDat To iSuccess Get ComAppendEncoded Of hoBinDat sCompressedHex "hex" To iSuccess Get pvComObject of hoBinDat to vBinDat Get ComDecompressBd Of hoCompress vBinDat To iSuccess Get ComGetEncoded Of hoBinDat "hex" To sDecompressedHex Showln "decompressed hex:" Showln sDecompressedHex // The output is the original hex string: // 54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A54686520717569636B2062726F776E20666F78206A756D706564206F76657220746865206C617A7920646F672E0D0A0D0A End_Procedure |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.