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

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

01.01.2007

В 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

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