Sample code for 30+ languages & platforms
PureBasic

StringBuilder SetNth

Demonstrates the SetNth method.

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"

Procedure ChilkatExample()

    ; The SetNth method is handy for setting a part of a delimited string.
    ; For example:

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

    CkStringBuilder::ckAppend(sb,"red,blue," + Chr(34) + "green,purple" + Chr(34) + ",,yellow")

    delimiterChar.s = ","
    exceptDoubleQuoted.i = 1
    exceptEscaped.i = 1

    CkStringBuilder::ckSetNth(sb,2,"magenta",delimiterChar,exceptDoubleQuoted,exceptEscaped)
    ; Prints "red,blue,magenta,,yellow"
    Debug CkStringBuilder::ckGetAsString(sb)

    CkStringBuilder::ckSetNth(sb,3,"orange",delimiterChar,exceptDoubleQuoted,exceptEscaped)
    ; Prints "red,blue,magenta,orange,yellow"
    Debug CkStringBuilder::ckGetAsString(sb)

    ; What happens if we start with an empty string?
    CkStringBuilder::ckClear(sb)

    CkStringBuilder::ckSetNth(sb,2,"apple",delimiterChar,exceptDoubleQuoted,exceptEscaped)
    ; Prints ",,apple"
    Debug CkStringBuilder::ckGetAsString(sb)

    CkStringBuilder::ckSetNth(sb,0,"orange",delimiterChar,exceptDoubleQuoted,exceptEscaped)
    ; Prints "orange,,apple"
    Debug CkStringBuilder::ckGetAsString(sb)

    CkStringBuilder::ckSetNth(sb,1,"banana",delimiterChar,exceptDoubleQuoted,exceptEscaped)
    ; Prints "orange,banana,apple"
    Debug CkStringBuilder::ckGetAsString(sb)


    CkStringBuilder::ckDispose(sb)


    ProcedureReturn
EndProcedure