Sample code for 30+ languages & platforms
PowerBuilder

StringBuilder GetBefore

Demonstrates the StringBuilder.GetBefore method.

The GetBefore method was added in Chilkat v9.5.0.77

Chilkat PowerBuilder Downloads

PowerBuilder
integer li_rc
long li_Success
oleobject loo_Sb
long li_RemoveFlag
string ls_Marker
string ls_Substr

li_Success = 0

loo_Sb = create oleobject
li_rc = loo_Sb.ConnectToNewObject("Chilkat.StringBuilder")
if li_rc < 0 then
    destroy loo_Sb
    MessageBox("Error","Connecting to COM object failed")
    return
end if
li_Success = loo_Sb.Append("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.
li_RemoveFlag = 0
ls_Marker = "."
ls_Substr = loo_Sb.GetBefore(ls_Marker,li_RemoveFlag)
Write-Debug "substr = " + ls_Substr
Write-Debug "sb contains: " + loo_Sb.GetAsString()

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

li_RemoveFlag = 1
ls_Substr = loo_Sb.GetBefore(ls_Marker,li_RemoveFlag)
Write-Debug "substr = " + ls_Substr
Write-Debug "sb contains: " + loo_Sb.GetAsString()

//  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:
loo_Sb.Clear()
loo_Sb.Append("111--222--333--444")
ls_Marker = "--"
li_RemoveFlag = 1
do while (loo_Sb.Length > 0)
    ls_Substr = loo_Sb.GetBefore(ls_Marker,li_RemoveFlag)
    Write-Debug "substr = " + ls_Substr + ", sb contains: " + loo_Sb.GetAsString()
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: 


destroy loo_Sb