Sample code for 30+ languages & platforms
DataFlex

StringBuilder GetBefore

Demonstrates the StringBuilder.GetBefore method.

The GetBefore method was added in Chilkat v9.5.0.77

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Boolean iSuccess
    Handle hoSb
    Boolean iRemoveFlag
    String sMarker
    String sSubstr
    String sTemp1

    Move False To iSuccess

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
    If (Not(IsComObjectCreated(hoSb))) Begin
        Send CreateComObject of hoSb
    End
    Get ComAppend Of hoSb "www.chilkatsoft.com" To iSuccess

    // The GetBefore method returns the contents of the string up to but not including
    // the marker string.  If the remove flag is True, then both the returned string AND
    // the marker are removed.
    Move False To iRemoveFlag
    Move "." To sMarker
    Get ComGetBefore Of hoSb sMarker iRemoveFlag To sSubstr
    Showln "substr = " sSubstr
    Get ComGetAsString Of hoSb To sTemp1
    Showln "sb contains: " sTemp1

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

    Move True To iRemoveFlag
    Get ComGetBefore Of hoSb sMarker iRemoveFlag To sSubstr
    Showln "substr = " sSubstr
    Get ComGetAsString Of hoSb To sTemp1
    Showln "sb contains: " sTemp1

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

    // If the marker is not found, and the removeFlag is True,
    // then the entire string is returned and the sb is cleared.
    // For example:
    Send ComClear To hoSb
    Get ComAppend Of hoSb "111--222--333--444" To iSuccess
    Move "--" To sMarker
    Move True To iRemoveFlag
    While ((ComLength(hoSb)) > 0)
        Get ComGetBefore Of hoSb sMarker iRemoveFlag To sSubstr
        Get ComGetAsString Of hoSb To sTemp1
        Showln "substr = " sSubstr ", sb contains: " sTemp1
    Loop

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


End_Procedure