Нахождение последнего вхождения подстроки в строкуDelphi , Синтаксис , Текст и СтрокиНахождение последнего вхождения подстроки в строку
Автор: Fenik { **** 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; Программная функция Delphi, именуемая Подпись функции
Функция принимает два параметра типа Функция InvertS
Помощник функция Основная функция
Основная функция сначала инвертирует обе строки Если подстрока найдена, функция рассчитывает ее фактическую позицию, вычитывая длину подстроки из длины исходной строки и добавляя смещение, рассчитанное ранее ( Пример использования
В этом примере функция Наявляется функция FindS в строке SrcS, которая возвращает начало последнего вхождения подстроки FindS в строку SrcS. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта. :: Главная :: Текст и Строки ::
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |