Delphi DLL
Delphi DLL
Unzip an AES Encrypted Text File directly into a String Variable
See more Zip Examples
A common need is to unzip from an AES encrypted Zip archive directly into a string variable, such that the unencrypted file never resides on disk, even temporarily. This example shows how to do it.Chilkat Delphi DLL Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, ZipEntry, Zip;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
zip: HCkZip;
entry: HCkZipEntry;
lineEndingBehavior: Integer;
srcCharset: PWideChar;
xmlText: PWideChar;
begin
success := False;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
zip := CkZip_Create();
// This example opens a WinZip-compatible AES encrypted
// .zip that contains a single file: hamlet.xml.
// It decrypts and unzips hamlet.xml directly into a string
// variable.
CkZip_SetPassword(zip,'secret');
success := CkZip_OpenZip(zip,'qa_data/hamlet.zip');
if (success = False) then
begin
Memo1.Lines.Add(CkZip__lastErrorText(zip));
Exit;
end;
entry := CkZipEntry_Create();
success := CkZip_EntryOf(zip,'hamlet.xml',entry);
if (success = False) then
begin
Memo1.Lines.Add(CkZip__lastErrorText(zip));
Exit;
end;
// lineEndingBehavior:
// 0 = leave unchanged.
// 1 = convert all to bare LF's
// 2 = convert all to CRLF's
lineEndingBehavior := 0;
srcCharset := 'utf-8';
xmlText := CkZipEntry__unzipToString(entry,lineEndingBehavior,srcCharset);
Memo1.Lines.Add(xmlText);
CkZip_Dispose(zip);
CkZipEntry_Dispose(entry);
end;