Недавно добавленные исходники

•  DeLiKaTeS Tetris (Тетрис)  4 069

•  TDictionary Custom Sort  6 169

•  Fast Watermark Sources  5 964

•  3D Designer  8 847

•  Sik Screen Capture  6 308

•  Patch Maker  6 719

•  Айболит (remote control)  6 713

•  ListBox Drag & Drop  5 571

•  Доска для игры Реверси  95 909

•  Графические эффекты  6 934

•  Рисование по маске  6 179

•  Перетаскивание изображений  5 099

•  Canvas Drawing  5 470

•  Рисование Луны  5 181

•  Поворот изображения  4 722

•  Рисование стержней  3 336

•  Paint on Shape  2 575

•  Генератор кроссвордов  3 474

•  Головоломка Paletto  2 773

•  Теорема Монжа об окружностях  3 575

•  Пазл Numbrix  2 344

•  Заборы и коммивояжеры  3 028

•  Игра HIP  1 984

•  Игра Go (Го)  1 906

•  Симулятор лифта  2 259

•  Программа укладки плитки  1 970

•  Генератор лабиринта  2 423

•  Проверка числового ввода  2 100

•  HEX View  2 429

•  Физический маятник  2 058

 
скрыть

  Форум  

Delphi FAQ - Часто задаваемые вопросы

| Базы данных | Графика и Игры | Интернет и Сети | Компоненты и Классы | Мультимедиа |
| ОС и Железо | Программа и Интерфейс | Рабочий стол | Синтаксис | Технологии | Файловая система |



Delphi Sources

Нахождение последнего вхождения подстроки в строку



Автор: 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;




Похожие по теме исходники

A Star (нахождение кратчайшего пути)

Нахождение кратчайшего пути

Нахождение СДНФ и СКНФ




Copyright © 2004-2025 "Delphi Sources" by BrokenByte Software. Delphi World FAQ

Группа ВКонтакте