Lazarus Pascal
Lazarus Pascal
StringBuilder GetBefore
Demonstrates the StringBuilder.GetBefore method.The GetBefore method was added in Chilkat v9.5.0.77
Chilkat Lazarus Pascal Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.StringBuilder;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
sb: TStringBuilder;
removeFlag: Boolean;
marker: string;
substr: string;
begin
success := False;
sb := TStringBuilder.Create;
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 True, then both the returned string AND
// the marker are removed.
removeFlag := False;
marker := '.';
substr := sb.GetBefore(marker,removeFlag);
WriteLn('substr = ' + substr);
WriteLn('sb contains: ' + sb.GetAsString());
// Output:
// substr = www
// sb contains: www.chilkatsoft.com
removeFlag := True;
substr := sb.GetBefore(marker,removeFlag);
WriteLn('substr = ' + substr);
WriteLn('sb contains: ' + sb.GetAsString());
// 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:
sb.Clear();
sb.Append('111--222--333--444');
marker := '--';
removeFlag := True;
while (sb.Length > 0) do
begin
substr := sb.GetBefore(marker,removeFlag);
WriteLn('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:
sb.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.