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

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

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 http://forum.vingrad.ru

Отправить комментарий

Проверка
Антиспам проверка
Image CAPTCHA
...