Выделение подстроки по контексту

Выделение подстроки по контексту Вот 2 функции которыми я очень часто пользуюсь - они выделяют из строки подстроку, которая находится до или после ключевого словаю Задача надо сказать частая, например есть строка: "Total-2.00$" Нижеприведенные функции позволяют выделить из строки логические элементы:

function GetBefore(substr, str:string):string;
{©Drkb v.3(2007): <a href="http://www.drkb.ru" title="www.drkb.ru">www.drkb.ru</a>,
 ®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com}

begin
 if pos(substr,str)>0 then
  result:=copy(str,1,pos(substr,str)-1)
 else
  result:='';
end;
function GetAfter(substr, str:string):string;
{©Drkb v.3(2007): <a href="http://www.drkb.ru" title="www.drkb.ru">www.drkb.ru</a>,
 ®Vit (Vitaly Nevzorov) - nevzorov@yahoo.com}

begin
 if pos(substr,str)>0 then
  result:=copy(str,pos(substr,str)+length(substr),length(str))
 else
  result:='';
end;
Примеры: 1) Найти название параметра (оно находится до символа "-"): GetBefore('-', 'Total-2.00$') // Результат будет "Total" 2) Найти сумму денег (оно находится после символа "-"): GetAfter('-', 'Total-2.00$') // Результат будет "2.00$"

3) Найти сумму денег без знака доллара и остатка строки(оно находится после символа "-", но до символа "$"):
GetBefore('$',GetAfter('-', 'Total-2.00$ (общая сумма)') // Результат будет "2.00"

Автор: Vit (www.delphist.com, www.drkb.ru, www.unihighlighter.com, www.nevzorov.org)

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

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