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
(PowerBuilder) Unzip Binary File to StreamDemonstrates how to unzip a large binary file to a stream to allow the application to process the uncompressed bytes chunk by chunk. Note: This example requires Chilkat v9.5.0.67 or greater.
integer li_rc oleobject loo_Zip integer li_Success oleobject loo_Entry oleobject loo_DataStream oleobject loo_UnzipTask oleobject loo_Fac oleobject loo_Bd // This requires the Chilkat Zip API to have been previously unlocked. // See Unlock Chilkat Zip for sample code. loo_Zip = create oleobject // Use "Chilkat_9_5_0.Zip" for versions of Chilkat < 10.0.0 li_rc = loo_Zip.ConnectToNewObject("Chilkat.Zip") if li_rc < 0 then destroy loo_Zip MessageBox("Error","Connecting to COM object failed") return end if // First open a .zip. li_Success = loo_Zip.OpenZip("qa_data/zips/big.zip") if li_Success <> 1 then Write-Debug loo_Zip.LastErrorText destroy loo_Zip return end if // Get the entry to be unzipped to a stream.. loo_Entry = loo_Zip.GetEntryByIndex(0) if loo_Zip.LastMethodSuccess <> 1 then Write-Debug loo_Zip.LastErrorText destroy loo_Zip return end if loo_DataStream = create oleobject // Use "Chilkat_9_5_0.Stream" for versions of Chilkat < 10.0.0 li_rc = loo_DataStream.ConnectToNewObject("Chilkat.Stream") loo_UnzipTask = loo_Entry.UnzipToStreamAsync(loo_DataStream) if loo_Entry.LastMethodSuccess <> 1 then Write-Debug loo_Entry.LastErrorText destroy loo_Entry destroy loo_Zip destroy loo_DataStream return end if // Start the background unzip thread. loo_UnzipTask.Run() // We'll read the uncompressed data chunk-by-chunk and write to an output file. loo_Fac = create oleobject // Use "Chilkat_9_5_0.FileAccess" for versions of Chilkat < 10.0.0 li_rc = loo_Fac.ConnectToNewObject("Chilkat.FileAccess") li_Success = loo_Fac.OpenForWrite("qa_output/out.dat") if li_Success <> 1 then Write-Debug loo_Fac.LastErrorText destroy loo_Entry destroy loo_Zip destroy loo_DataStream destroy loo_Fac return end if // Read the stream. (this is reading the unzipped file data) loo_Bd = create oleobject // Use "Chilkat_9_5_0.BinData" for versions of Chilkat < 10.0.0 li_rc = loo_Bd.ConnectToNewObject("Chilkat.BinData") do while loo_DataStream.EndOfStream <> 1 // Get the next chunk of decompressed bytes. loo_DataStream.ReadBd(loo_Bd) // Do something with it.. // In this simple example, we'll just write to the file. loo_Fac.FileWriteBd(loo_Bd,0,0) // Clear for the next read. loo_Bd.Clear() loop loo_Fac.FileClose() destroy loo_Entry destroy loo_UnzipTask Write-Debug "Success." destroy loo_Zip destroy loo_DataStream destroy loo_Fac destroy loo_Bd |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.