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
(Delphi ActiveX) File Read BlocksDemonstrates how to read a file in fixed-size blocks (except for the very last block).
uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB; ... procedure TForm1.Button1Click(Sender: TObject); var dataBlock: Array of Byte; facSrc: TCkFileAccess; facDest: TCkFileAccess; srcPath: WideString; destPath: WideString; success: Integer; numBlocks: Integer; i: Integer; bEqual: Integer; begin // Demonstrates how to read a file in blocks, // which can be useful when uploading to cloud storage // services such as Azure, S3, Google, etc. // For this example, we're simply writing the blocks // to an output file, and then checking to see if the // resulting file contents equals the original file contents. facSrc := TCkFileAccess.Create(Self); facDest := TCkFileAccess.Create(Self); srcPath := 'qa_data/xml/hamlet.xml'; destPath := 'qa_output/hamletOut.xml'; success := facSrc.OpenForRead(srcPath); success := facDest.OpenForWrite(destPath); // Assuming success for the example.. // How many 1024-byte blocks? (Including 1 for the last partial block) numBlocks := facSrc.GetNumBlocks(1024); i := 0; while (i < numBlocks) do begin dataBlock := facSrc.ReadBlock(i,1024); if (facSrc.LastMethodSuccess <> 1) then begin Memo1.Lines.Add(facSrc.LastErrorText); Exit; end; success := facDest.FileWrite(dataBlock); if (success <> 1) then begin Memo1.Lines.Add(facDest.LastErrorText); Exit; end; i := i + 1; end; facSrc.FileClose(); facDest.FileClose(); bEqual := facSrc.FileContentsEqual(srcPath,destPath); if (bEqual <> 1) then begin Memo1.Lines.Add('Something went wrong!'); Exit; end; Memo1.Lines.Add('File successfully copied by blocks.'); end; |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.