Sample code for 30+ languages & platforms
PureBasic

Transition from Zip.AppendBd to Zip.AddBd

Provides instructions for replacing deprecated AppendBd method calls with AddBd.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkBinData.pb"
IncludeFile "CkZip.pb"
IncludeFile "CkZipEntry.pb"

Procedure ChilkatExample()

    success.i = 0

    zip.i = CkZip::ckCreate()
    If zip.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    pathInZip.s = "example.dat"

    bd.i = CkBinData::ckCreate()
    If bd.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    CkBinData::ckLoadFile(bd,"c:/someDir/example.dat")

    ; ------------------------------------------------------------------------
    ; The AppendBd method is deprecated:
    ; AppendBd returns the zip entry object, which is usually not needed.

    entryObj.i = CkZip::ckAppendBd(zip,pathInZip,bd)
    If CkZip::ckLastMethodSuccess(zip) = 0
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        CkBinData::ckDispose(bd)
        ProcedureReturn
    EndIf

    ; ...
    ; ...

    CkZipEntry::ckDispose(entryObj)

    ; ------------------------------------------------------------------------
    ; Do the equivalent using AddBd.

    ; Instead of returning the zip entry object, we just return success/failure.
    success = CkZip::ckAddBd(zip,pathInZip,bd)
    If success = 0
        Debug CkZip::ckLastErrorText(zip)
        CkZip::ckDispose(zip)
        CkBinData::ckDispose(bd)
        ProcedureReturn
    EndIf

    ; Do the following if you need the zip entry object for what was just appended.
    ; The newly appended entry is the last one.
    ze.i = CkZipEntry::ckCreate()
    If ze.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    index.i = CkZip::ckNumEntries(zip) - 1
    CkZip::ckEntryAt(zip,index,ze)


    CkZip::ckDispose(zip)
    CkBinData::ckDispose(bd)
    CkZipEntry::ckDispose(ze)


    ProcedureReturn
EndProcedure