Sample code for 30+ languages & platforms
DataFlex

StringBuilder SetNth

Demonstrates the SetNth method.

Chilkat DataFlex Downloads

DataFlex
Use ChilkatAx-win32.pkg

Procedure Test
    Handle hoSb
    Boolean iSuccess
    String sDelimiterChar
    Boolean iExceptDoubleQuoted
    Boolean iExceptEscaped
    String sTemp1

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

    Get Create (RefClass(cComChilkatStringBuilder)) To hoSb
    If (Not(IsComObjectCreated(hoSb))) Begin
        Send CreateComObject of hoSb
    End
    Get ComAppend Of hoSb 'red,blue,"green,purple",,yellow' To iSuccess

    Move "," To sDelimiterChar
    Move True To iExceptDoubleQuoted
    Move True To iExceptEscaped

    Get ComSetNth Of hoSb 2 "magenta" sDelimiterChar iExceptDoubleQuoted iExceptEscaped To iSuccess
    // Prints "red,blue,magenta,,yellow"
    Get ComGetAsString Of hoSb To sTemp1
    Showln sTemp1

    Get ComSetNth Of hoSb 3 "orange" sDelimiterChar iExceptDoubleQuoted iExceptEscaped To iSuccess
    // Prints "red,blue,magenta,orange,yellow"
    Get ComGetAsString Of hoSb To sTemp1
    Showln sTemp1

    // What happens if we start with an empty string?
    Send ComClear To hoSb

    Get ComSetNth Of hoSb 2 "apple" sDelimiterChar iExceptDoubleQuoted iExceptEscaped To iSuccess
    // Prints ",,apple"
    Get ComGetAsString Of hoSb To sTemp1
    Showln sTemp1

    Get ComSetNth Of hoSb 0 "orange" sDelimiterChar iExceptDoubleQuoted iExceptEscaped To iSuccess
    // Prints "orange,,apple"
    Get ComGetAsString Of hoSb To sTemp1
    Showln sTemp1

    Get ComSetNth Of hoSb 1 "banana" sDelimiterChar iExceptDoubleQuoted iExceptEscaped To iSuccess
    // Prints "orange,banana,apple"
    Get ComGetAsString Of hoSb To sTemp1
    Showln sTemp1


End_Procedure