Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

Быстрая функция для разбивки строки на части (слова) в один цикл

01.01.2007
type TDelim=set of Char;
        TArrayOfString=Array of String;
 
 
//*******************
//
// Разбивает строку с разделителями на части
// и возвращает массив частей
//
// fcToParts
//
 
function fcToParts(sString:String;tdDelim:TDelim):TArrayOfString
var iCounter,iBegin:Integer;
begin//fc
if length(sString)>0 then
 begin
  include(tdDelim,#0);iBegin:=1; SetLength(Result,0);
  For iCounter:=1 to Length(sString)+1 do
   begin//for
    if (sString[iCounter] in tdDelim) then
     begin
      SetLength(Result,Length(Result)+1);
      Result[Length(Result)-1]:=Copy(sString,iBegin,iCounter-iBegin);
      iBegin:=iCounter+1;
     end;
  end;//for
 end;//if
end;//fc

Пример использования:

var
StrArr:TArrayOfString
 
StrArr:=fcToParts('строка1-строка2@строка3',['-','@']):
 

Автор: ДЫМ

Взято с Vingrad.ru https://forum.vingrad.ru