{ **** UBPFD *********** by delphibase.endimus.com ****
>> Нахождение последнего вхождения подстроки в строку
Функция возвращает начало последнего вхождения
подстроки FindS в строку SrcS, т.е. первое с конца.
Если возвращает ноль, то подстрока не найдена.
Можно использовать в текстовых редакторах
при поиске текста вверх от курсора ввода.
Зависимости: System
Автор: Fenik, chook_nu@uraltc.ru, Новоуральск
Copyright: Автор: Федоровских Николай
Дата: 16 июня 2002 г.
***************************************************** }function PosR2L(const FindS, SrcS: string): Integer;
{Функция возвращает начало последнего вхождения
подстроки FindS в строку SrcS, т.е. первое с конца.
Если возвращает ноль, то подстрока не найдена.
Можно использовать в текстовых редакторах
при поиске текста вверх от курсора ввода.}function InvertS(const S: string): string;
{Инверсия строки S}var
i, Len: Integer;
begin
Len := Length(S);
SetLength(Result, Len);
for i := 1 to Len do
Result[i] := S[Len - i + 1];
end;
var
ps: Integer;
begin{Например: нужно найти последнее вхождение
строки "ро" в строке "пирожок в коробке".
Инвертируем обе строки и получаем
"ор" и "екборок в кожорип",
а затем ищем первое вхождение с помощью стандартной
функции Pos(Substr, S: string): string;
Если подстрока Substr есть в строке S, то
эта функция возвращает позицию первого вхождения,
а иначе возвращает ноль.}
ps := Pos(InvertS(FindS), InvertS(SrcS));
{Если подстрока найдена определяем её истинное положение
в строке, иначе возвращаем ноль}if ps <> 0 then
Result := Length(SrcS) - Length(FindS) - ps + 2
else
Result := 0;
end;
Пример использования:
p := PosR2L("са", "Мой сапог догнал самолёт."); // p:=18;
Если Вас заинтересовала или понравилась информация по разработке на Delph - "Нахождение последнего вхождения подстроки в строку", Вы можете поставить закладку в социальной сети или в своём блоге на данную страницу: Так же Вы можете задать вопрос по работе этого модуля или примера через форму обратной связи, в сообщение обязательно указывайте название или ссылку на статью!