AT — различия между версиями

Материал из Фабиус wiki
Перейти к: навигация, поиск
м
м
Строка 10: Строка 10:
  
 
   b1 := at( pref_from, xml_text )
 
   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;
 

Версия 07:55, 15 августа 2016

at - это функция, описанная в файле Qr_expr.pas

AT( <Exp>, <Exp> )

Позиция первого вхождения подстроки в символьную строку

At( 'что искать', 'где искать' )

Примеры

 b1 := at( pref_from, xml_text )