Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
Разработка программного обеспечения
KANSoftWare

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

Delphi , Синтаксис , Текст и Строки

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

Оформил: DeeCo
Автор: http://www.swissdelphicenter.ch


 { 
  Letzte Position von SubStr in S ermitteln. 
  Returns the last occurence of SubStr in S. 
}

 function LastPos(SubStr, S: string): Integer;
 var
   Found, Len, Pos: integer;
 begin
   Pos := Length(S);
   Len := Length(SubStr);
   Found := 0;
   while (Pos > 0) and (Found = 0) do
   begin
     if Copy(S, Pos, Len) = SubStr then
       Found := Pos;
     Dec(Pos);
   end;
   LastPos := Found;
 end;

Here's the translation of the provided content into Russian:

Код - функция Delphi под именем LastPos, которая находит последнее вхождение заданного подстроки (SubStr) в строке (S). Она проходит по строке в обратном направлении, сравнивая символы текущей позиции с подстрокой, пока не найдет совпадение или не достигнет начала строки.

Разбивка кода:

  1. Функция принимает два параметра: SubStr (подстрока для поиска) и S (оригинальная строка).
  2. Она инициализирует три целочисленные переменные:
    • Pos: начинается с конца строки (Length(S)), будет уменьшаться при проходе в обратном направлении.
    • Len: длина подстроки (Length(SubStr)).
    • Found: флаг, который по умолчанию имеет значение 0, указывающий, не найдено ли подстрока еще.
  3. Функция вступает в цикл while, продолжающийся, пока:
    • Pos больше 0 (т.е. мы еще не достигли начала строки).
    • Found все еще имеет значение 0 (т.е. мы еще не нашли подстроку).
  4. Внутри цикла она проверяет, совпадают ли символы текущей позиции с подстрокой с помощью Copy(S, Pos, Len) = SubStr. Если они совпадают, она устанавливает Found в значение текущего Pos, указывая, что подстрока найдена.
  5. Затем она уменьшает Pos на 1, чтобы переместиться назад на один символ в строке.
  6. Когда цикл выходит (либо потому, что мы достигли начала строки, либо потому, что нашли подстроку), функция присваивает значение Found переменной LastPos.

Пример использования:

var
  S: string;
begin
  S := 'Hello World, Hello!';
  LastPos('Hello', S); // Вывод: 13 (последнее вхождение 'Hello' - на позиции 13)
end.

Альтернативное решение: Более эффективный подход будет использовать функцию LastIndexOf, предоставленную библиотекой строк Delphi. Эта функция ищет подстроку с конца строки и возвращает индекс последнего вхождения:

function LastPos(SubStr, S: string): Integer;
begin
  Result := LastIndexOf(S, SubStr);
end;

Эта реализация более компактна и эффективна, так как она использует функциональность Delphi.

В статье описывается функция на языке Delphi для поиска последнего вхождения подстроки в строку.


Комментарии и вопросы


Ваше мнение или вопрос к статье в виде простого текста (Tag <a href=... Disabled). Все комментарии модерируются, модератор оставляет за собой право удалить непонравившейся ему комментарий.

заголовок

e-mail

Ваше имя

Сообщение

Введите код




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.



:: Главная :: Текст и Строки ::


реклама



©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru Rambler's Top100

Время компиляции файла: 2024-05-19 17:53:24
2024-05-20 00:40:34/0.0044848918914795/2