AT — различия между версиями
Материал из Фабиус wiki
Hisava (обсуждение | вклад) м |
Hisava (обсуждение | вклад) м |
||
| Строка 1: | Строка 1: | ||
| − | at - это функция, | + | at - это функция, описанная в файле [[Qr_expr.pas]] |
AT( <Exp>, <Exp> ) | AT( <Exp>, <Exp> ) | ||
Версия 16:38, 10 июня 2016
at - это функция, описанная в файле Qr_expr.pas
AT( <Exp>, <Exp> )
Позиция первого вхождения подстроки в символьную строку
At( 'что искать', 'где искать' )
Примеры
b1 := at( pref_from, xml_text )
Полный текст функции
{ TQREvAtFunction }
type
TQREvAtFunction = class(TQREvElementFunction) public function Calculate: TQREvResult; override; end;
function TQREvAtFunction.Calculate: TQREvResult; var
OffSet: integer;
begin
if (ArgList.Count >= 2) and
(Argument(0).Kind = ResString) and
(Argument(1).Kind = ResString) then
begin
Result.Kind := ResInt;
if (ArgList.Count > 2) then
OffSet := QrEvResultToInt(Argument(2))
else
OffSet := 1;
Result.IntResult := PosEx(Argument(0).StrResult, Argument(1).StrResult, OffSet);
end
else
Result := ErrorCreate(Format(SqrExpWrongArguments, ['AT']));
end;