Sample code for 30+ languages & platforms
PureBasic

Keeping Query Params in a Hashtable

Demonstrates how to use a Chilkat Hashtable to hold query params and re-emit as a query param string.

Note: The ToQueryString method was added in Chilkat v9.5.0.92.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringTable.pb"
IncludeFile "CkHashtable.pb"

Procedure ChilkatExample()

    success.i = 0

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

    ; Add name/value pairs from an existing query param string where the values are already URL encoded.
    qp.s = "txt=this%20is%20a%20test&color=blue&fruits=apples%26oranges"
    success = CkHashtable::ckAddQueryParams(ht,qp)

    ; Add some additional name/value pairs.
    CkHashtable::ckAddStr(ht,"name","Jack Sparrow")
    CkHashtable::ckAddStr(ht,"movie","Pirates of the Carribean")

    ; Iterate over the hash table to show what we have..

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

    CkHashtable::ckGetKeys(ht,keys)
    numKeys.i = CkStringTable::ckCount(keys)
    key.s
    val.s
    i.i = 0
    While i < numKeys
        key = CkStringTable::ckStringAt(keys,i)
        val = CkHashtable::ckLookupStr(ht,key)
        Debug key + " = " + val
        i = i + 1
    Wend

    ; Output for the above loop:

    ; color = blue
    ; name = Jack Sparrow
    ; fruits = apples&oranges
    ; txt = this is a test
    ; movie = Pirates of the Carribean

    ; Get all name/value pairs as a query parm string with values URL encoded
    qp = CkHashtable::ckToQueryString(ht)
    Debug qp

    ; Result:
    ; color=blue&name=Jack%20Sparrow&fruits=apples%26oranges&txt=this%20is%20a%20test&movie=Pirates%20of%20the%20Carribean


    CkHashtable::ckDispose(ht)
    CkStringTable::ckDispose(keys)


    ProcedureReturn
EndProcedure