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