Показать сообщение отдельно
  #3  
Старый 05.02.2011, 22:19
Аватар для GriLab
GriLab GriLab вне форума
Начинающий
 
Регистрация: 26.11.2010
Адрес: Минск
Сообщения: 190
Версия Delphi: XE 15.0.3890
Репутация: 415
По умолчанию

Код:
function Pos(const SubStr, Str: ShortString): Integer;
var
  SubLen, SrcLen, Len, I, J: Integer;
  C1: AnsiChar;
begin
  SrcLen := Byte(Str[0]);
  SubLen := Byte(SubStr[0]);
  Result := 0;
  if (SubLen <= 0) or (SrcLen <= 0) or (SrcLen < SubLen) then Exit;
  // find SubStr[1] in Str[1 .. SrcLen - SubLen + 1]
  Len := SrcLen - SubLen + 1;
  C1 := SubStr[1];
  for I := 1 to Len do
  begin
    if Str[i] = C1 then
    begin
      Result := I;
      for J := 1 to SubLen-1 do
      begin
        if Str[I+J] <> SubStr[1+J] then
        begin
          Result := 0;
          break;
        end;
      end;
      if Result <> 0 then Exit;
    end;
  end;
  // not found
end;

Нашел у себя в модуле System.pas
Ответить с цитированием