Быстрая функция для разбивки строки на части (слова) в один цикл.
Материал из DRKB
Быстрая функция для разбивки строки на части (слова) в один цикл.[править | править код]
type
TDelim = set of Char;
TArrayOfString = array of string;
//*******************
// Разбивает строку с разделителями на части
// и возвращает массив частей
function fcToParts(sString: String; tdDelim: TDelim): TArrayOfString
var
iCounter, iBegin: Integer;
begin
if Length(sString) > 0 then
begin
Include(tdDelim, #0);
iBegin := 1;
SetLength(Result, 0);
for iCounter := 1 to Length(sString)+1 do
begin
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;
end;
end;
Пример использования:
var
StrArr: TArrayOfString;
StrArr := fcToParts('строка1-строка2@строка3', ['-','@']);
Source: Взято с Vingrad.ru http://forum.vingrad.ru
ID: 00170