При работе со строками часто возникает необходимость
копировать кусок строки от одного символа (или нескольких)
до другого (других). Каждый раз использовать copy или
delete нерационально, поэтому я написал небольшую функцию:
function GetBetween(first,second,line:string):string;
var
posF,posS,i:integer;
st:string;
index:boolean;
begin
st:='';
posF:=pos(first,line)+length(first);//начало копирования
posS:=pos(second,line);//конец копирования
index:=true;
i:=1;
while (i<=length(line))and(index) do begin
if (i>=posF)and(i<posS) then st:=st+line[i];
if i=posS then index:=false;
inc(i);
end;
GetBetween:=st;
end.
Есть правда одно ограничение: если в строке встречается несколько
одинаковых кусков и такой кусок выбран в роли first или second,то
результат не всегда будет корректным.
Источник: www.delphikingdom.ru
|