Использование PosEx взамен Pos

Previous  Top  Next

    
 

 

 

В Delphi 7 в модуле StrUtils внесены некоторые изменения.

Есть новая функция: PosEx.

 

Обьявление этих функций:

 

Code:

Function Pos(Substr: String; S: String): Integer;

Function PosEx(Const SubStr, S: String; Offset: Cardinal = 1): Integer;

 

Новая функция PosEx, позволяет указать начальную позицию поиска внутри строки, что избавит вас от необходимости изменения исходной строки. Незабудьте указать модуль StrUtils.

 

Ниже приведена реализация функции в модуле StrUtils (если вы используете более старшую версию среди разработки вы сможете сами добавить этот код и использовать его вместо функции Pos):

 

Code:

Function PosEx(Const SubStr, S: String; Offset: Cardinal = 1): Integer;

var

I,X: Integer;

Len, LenSubStr: Integer;

begin

If Offset = 1 Then

   Result := Pos(SubStr, S)

Else

begin

   I := Offset;

   LenSubStr := Length(SubStr);

   Len := Length(S) - LenSubStr + 1;

   While I <= Len Do

   begin

     If S[I] = SubStr[1] Then

     begin

       X := 1;

       While (X < LenSubStr) And (S[I + X] = SubStr[X + 1]) Do

         Inc(X);

       If (X = LenSubStr) Then

       begin

         Result := I;

         Exit;

       End;

     End;

     Inc(I);

   End;

   Result := 0;

End;

End;

 

Автор RoboSol

©Drkb::00085

Взято из http://forum.sources.ru