Sample code for 30+ languages & platforms
Delphi ActiveX

StringBuilder GetBefore

Demonstrates the StringBuilder.GetBefore method.

The GetBefore method was added in Chilkat v9.5.0.77

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
uses
    Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
    Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;

...

procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
sb: TChilkatStringBuilder;
removeFlag: Integer;
marker: WideString;
substr: WideString;

begin
success := 0;

sb := TChilkatStringBuilder.Create(Self);
success := 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.
removeFlag := 0;
marker := '.';
substr := sb.GetBefore(marker,removeFlag);
Memo1.Lines.Add('substr = ' + substr);
Memo1.Lines.Add('sb contains: ' + sb.GetAsString());

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

removeFlag := 1;
substr := sb.GetBefore(marker,removeFlag);
Memo1.Lines.Add('substr = ' + substr);
Memo1.Lines.Add('sb contains: ' + 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:
sb.Clear();
sb.Append('111--222--333--444');
marker := '--';
removeFlag := 1;
while (sb.Length > 0) do
  begin
    substr := sb.GetBefore(marker,removeFlag);
    Memo1.Lines.Add('substr = ' + substr + ', sb contains: ' + sb.GetAsString());
  end;

// 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;