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

В Delphi 7 в модуле StrUtils внесены некоторые изменения.
Есть новая функция: PosEx.
Обьявление этих функций:

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

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

Новая функция PosEx, позволяет указать начальную позицию поиска внутри строки, что избавит вас от необходимости изменения исходной строки. Незабудьте указать модуль StrUtils.
Ниже приведена реализация функции в модуле StrUtils (если вы используете более старшую версию среды разработки вы сможете сами добавить этот код и использовать его вместо функции Pos):
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
Взято из http://forum.sources.ru

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

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