Sample code for 30+ languages & platforms
Delphi DLL

Add Text Files to a ZIP Using AddString

See more Zip Examples

This example demonstrates how to use the AddString method to add multiple text files directly from string variables into a ZIP archive.

Each string is converted to bytes using the specified character encoding and stored as a separate file entry within the ZIP archive.

This method is useful for dynamically generating small text files such as configuration files, reports, JSON documents, XML, or log files entirely in memory.

Chilkat Delphi DLL Downloads

Delphi DLL
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Zip;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Boolean;
zip: HCkZip;
readmeText: PWideChar;
jsonText: PWideChar;
xmlText: PWideChar;

begin
success := False;

zip := CkZip_Create();

success := CkZip_NewZip(zip,'stringEntries.zip');
if (success = False) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
    Exit;
  end;

// Add a README text file.
readmeText := 'This ZIP archive was created using AddString.';

success := CkZip_AddString(zip,'docs/readme.txt',readmeText,'utf-8');
if (success = False) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
    Exit;
  end;

// Add a JSON configuration file.
jsonText := '{ "server": "example.com", "port": 443 }';

success := CkZip_AddString(zip,'config/settings.json',jsonText,'utf-8');
if (success = False) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
    Exit;
  end;

// Add a small XML document.
xmlText := '<root><status>OK</status></root>';

success := CkZip_AddString(zip,'xml/status.xml',xmlText,'utf-8');
if (success = False) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
    Exit;
  end;

// Write the ZIP archive to disk and close it.
success := CkZip_WriteZipAndClose(zip);
if (success = False) then
  begin
    Memo1.Lines.Add(CkZip__lastErrorText(zip));
    Exit;
  end;

Memo1.Lines.Add('ZIP archive created successfully.');

CkZip_Dispose(zip);

end;