Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
ВнизPos() RTL Найти похожие ветки
← →
Чапаев © (2006-08-09 18:37) [0]Нужно искать последнее вхождение подстроки в строку. Конечно, можно циклически PosEx() вызывать, но это очень неудобно, так как позже понадобится предпоследнее вхождение и тыды.
Как бы организовать поиск "справа налево" с наименьшими трудозатратами?
← →
Desdechado © (2006-08-09 18:40) [1]Написать самому?
Когда-то писал для эксперимента. На эталон не претендует :){----- поиск подстроки lpSub от конца строки lpStr -----}
function fn_StrAtR( lpSub, lpStr: PChar ): Integer; cdecl; export;
var
nLenSub, nLenStr, nStrPos, i: Integer;
begin
result := 0;
nLenSub := StrLen( lpSub );
nLenStr := StrLen( lpStr );
if( ( nLenSub > 0 ) and ( nLenStr > 0 ) and ( nLenSub <= nLenStr ) ) then
begin
nStrPos := nLenStr - 1; // номер символа, от которого идет поиск влево
while( nStrPos + 1 >= nLenSub ) do
begin
i := 0; // счетчик символов в подстроке
while( ( i < nLenSub ) and
( lpStr[ nStrPos - i ] = lpSub[ nLenSub - 1 - i ] ) ) do
Inc( i );
if( i = nLenSub ) then
begin
result := nStrPos - nLenSub + 2; // для нумерации с 1
break;
end;
Dec( nStrPos );
end; // while
end;
end;
← →
Jeer © (2006-08-09 18:52) [2]Перевернуть и искать перевернутое же.
← →
Dmitrij_K (2006-08-09 20:32) [3]Посмотри модуль AcedStrings.pas acedutils.narod.ru функции G_LastPos*
Страницы: 1 вся ветка
Форум: "Основная";
Текущий архив: 2006.09.24;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.046 c