Sample code for 30+ languages & platforms
PureBasic

StringBuilder GetBefore

Demonstrates the StringBuilder.GetBefore method.

The GetBefore method was added in Chilkat v9.5.0.77

Chilkat PureBasic Downloads

PureBasic
IncludeFile "CkStringBuilder.pb"

Procedure ChilkatExample()

    success.i = 0

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

    success = CkStringBuilder::ckAppend(sb,"www.chilkatsoft.com")

    ; The GetBefore method returns the contents of the string up to but not including
    ; the marker string.  If the remove flag is 1, then both the returned string AND
    ; the marker are removed.
    removeFlag.i = 0
    marker.s = "."
    substr.s = CkStringBuilder::ckGetBefore(sb,marker,removeFlag)
    Debug "substr = " + substr
    Debug "sb contains: " + CkStringBuilder::ckGetAsString(sb)

    ; Output:
    ; substr = www
    ; sb contains: www.chilkatsoft.com

    removeFlag = 1
    substr = CkStringBuilder::ckGetBefore(sb,marker,removeFlag)
    Debug "substr = " + substr
    Debug "sb contains: " + CkStringBuilder::ckGetAsString(sb)

    ; Output:
    ; substr = www
    ; sb contains: chilkatsoft.com

    ; If the marker is not found, and the removeFlag is 1,
    ; then the entire string is returned and the sb is cleared.
    ; For example:
    CkStringBuilder::ckClear(sb)
    CkStringBuilder::ckAppend(sb,"111--222--333--444")
    marker = "--"
    removeFlag = 1
    While (CkStringBuilder::ckLength(sb) > 0)
        substr = CkStringBuilder::ckGetBefore(sb,marker,removeFlag)
        Debug "substr = " + substr + ", sb contains: " + CkStringBuilder::ckGetAsString(sb)
    Wend

    ; Output is:
    ; substr = 111, sb contains: 222--333--444
    ; substr = 222, sb contains: 333--444
    ; substr = 333, sb contains: 444
    ; substr = 444, sb contains: 


    CkStringBuilder::ckDispose(sb)


    ProcedureReturn
EndProcedure