program SplitString;
uses
SysUtils; // Trim
var
str, delimiter: string;
parts: array of string;
i, startPos, delimPos: Integer;
tempStr: string;
begin
str := 'Apples and Oranges and Bananas and Grapes are tasty';
delimiter := 'and';
tempStr := str;
startPos := 1;
while True do
begin
delimPos := Pos(delimiter, tempStr);
if delimPos = 0 then
begin
SetLength(parts, Length(parts) + 1);
parts[High(parts)] := Trim(tempStr);
Break;
end
else
begin
SetLength(parts, Length(parts) + 1);
parts[High(parts)] := Trim(Copy(tempStr, 1, delimPos - 1));
Delete(tempStr, 1, delimPos + Length(delimiter) - 1);
end;
end;
// Output each trimmed part
for i := 0 to High(parts) do
WriteLn(parts[i]);
end.
(*
run:
Apples
Oranges
Bananas
Grapes are tasty
*)