Sources
Delphi Russian Knowledge Base
DRKB - это самая большая и удобная в использовании база знаний по Дельфи в рунете, составленная Виталием Невзоровым

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

01.01.2007

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

"Total-2.00$"

Нижеприведенные функции позволяют выделить из строки логические элементы:

function GetBefore(substr, str:string):string;

begin
 if pos(substr,str)>0 then
   result:=copy(str,1,pos(substr,str)-1)
 else
   result:='';
end;
 
function GetAfter(substr, str:string):string;

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