Sample code for 30+ languages & platforms
PureBasic

Ascii85 Encoding and Decoding

See more Encryption Examples

Demonstrates ascii85 encoding and decoding.

Note: Requires Chilkat v9.5.0.79 or greater.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"
IncludeFile "CkBinData.pb"

Procedure ChilkatExample()

    success.i = 0

    ; First demonstrate encoding strings to ascii85 and back.
    sb.i = CkStringBuilder::ckCreate()
    If sb.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkStringBuilder::ckAppend(sb,"Man is distinguished, not only by his reason, but by this singular passion from other animals, which is a lust of the mind, that by a perseverance of delight in the continued and indefatigable generation of knowledge, exceeds the short vehemence of any carnal pleasure.")

    encodedAscii85.s = CkStringBuilder::ckGetEncoded(sb,"ascii85","utf-8")
    Debug encodedAscii85

    ; Result is: 9jqo^BlbD-BleB1DJ+*+F(f,q/0JhKF<GL>Cj@.4 ... DII?(E,9)oF*2M7/c

    ; Decode back to the original:
    CkStringBuilder::ckClear(sb)
    CkStringBuilder::ckAppend(sb,encodedAscii85)
    success = CkStringBuilder::ckDecode(sb,"ascii85","utf-8")
    Debug "Original:"
    Debug CkStringBuilder::ckGetAsString(sb)

    ; ---- Now encode binary data to ascii85 ----
    bd.i = CkBinData::ckCreate()
    If bd.i = 0
        Debug "Failed to create object."
        ProcedureReturn
    EndIf

    success = CkBinData::ckLoadFile(bd,"qa_data/jpg/starfish20.jpg")
    encodedAscii85 = CkBinData::ckGetEncoded(bd,"ascii85")
    Debug encodedAscii85

    ; Result is:  s4IA0!"_al8O`[\!<E0k!([(is8E!F7VQ[M+Eqj?FED)3+C]U=6"Fn ...

    ; Decode...
    CkBinData::ckClear(bd)
    CkBinData::ckAppendEncoded(bd,encodedAscii85,"ascii85")
    success = CkBinData::ckWriteFile(bd,"qa_output/starfish20.jpg")


    CkStringBuilder::ckDispose(sb)
    CkBinData::ckDispose(bd)


    ProcedureReturn
EndProcedure