Sample code for 30+ languages & platforms
DataFlex

Add Text from a StringBuilder to a ZIP Using AddSb

See more Zip Examples

This example demonstrates how to use the AddSb method to add text from a StringBuilder object as a file entry within a ZIP archive.

The text is converted to bytes using the specified character encoding before being stored in the ZIP archive.

This method is useful for dynamically generating text files entirely in memory without creating temporary files on disk.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoZip
    Variant vSb
    Handle hoSb
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatZip)) To hoZip
    If (Not(IsComObjectCreated(hoZip))) Begin
        Send CreateComObject of hoZip
    End

    Get ComNewZip Of hoZip "stringBuilderData.zip" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Create a StringBuilder containing text data.
    Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
    If (Not(IsComObjectCreated(hoSb))) Begin
        Send CreateComObject of hoSb
    End

    Get ComAppendLine Of hoSb "Line 1: Hello World!" True To iSuccess
    Get ComAppendLine Of hoSb "Line 2: This text came from a StringBuilder." True To iSuccess

    // Add the StringBuilder contents as a UTF-8 text file
    // stored in the ZIP archive as "docs/readme.txt".
    Get pvComObject of hoSb to vSb
    Get ComAddSb Of hoZip "docs/readme.txt" vSb "utf-8" To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    // Write the ZIP archive to disk and close it.
    Get ComWriteZipAndClose Of hoZip To iSuccess
    If (iSuccess = False) Begin
        Get ComLastErrorText Of hoZip To sTemp1
        Showln sTemp1
        Procedure_Return
    End

    Showln "ZIP archive created successfully."


End_Procedure