How to split a string by a substring delimiter in Pascal

1 Answer

0 votes
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

*)

 



answered Aug 11, 2025 by avibootz

Related questions

1 answer 86 views
1 answer 79 views
1 answer 127 views
1 answer 137 views
2 answers 137 views
...