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

Previous  Top  Next

    
 

 

 

Code:

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

 

 

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

Code:

var

StrArr:TArrayOfString

 

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

 

Автор ДЫМ

©Drkb::00170

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