czy jest funkcja taka jak pos tylko szukajaca od tyłu?
Wydaje się że nie, ale można do tego wykorzystać funkcje pos().
Wystarczy napisać własną procedure lub funkcje
Zależy jak długi łańcuch będziesz sprawdzał.
Też potrzebowałem czegoś takiego a łańcuchem była ścieżka do pliku, krotko mówiąc potrzebowałem ostatni katalog w ścieżce, tak to rozwiazalem:
Function OddzielKatalog(strSciezka: String; Var strCalaSciezka: String): String;
var strKatalog: String;
iLicznik: Integer;
Begin
Result := '';
strKatalog := '';
strCalaSciezka := '';
//odwrocenie lancucha, czyli pierwszy znak jest teraz ostatnim
For iLicznik := Length(strSciezka) DownTo 1 Do
Begin
If strSciezka[iLicznik] <> '' Then
// do zmiennej strKatalog przekazuje znaki spelniajace warunek
strKatalog := strKatalog + strSciezka[iLicznik]
Else
Break
End;
//zamiana z powrotem na wlasciwy i poprawny ciag znakow
For iLicznik := Length(strKatalog) DownTo 1 Do
Result := Result + strKatalog[iLicznik];
strCalaSciezka := Copy(strSciezka, 1, Length(strSciezka) - Length(Result));
End;
nie wiem czy sie przyda, ale mozna pokombinowac
function sr(ee:string):string;
var gg:string; x:integer;
begin
try gg:=ee;
repeat
x:=pos('',gg);
gg:=copy(gg,x+1,length(gg));
until x=0;
result:=gg
except result:='c:\a.txt' end;
end;
wole juz moja :)
a może odwracać string i szukać normalnym posem?
//dopisane: a nie, to raczej nie zadziała w tym przypadku.
//dopisane 2: nie mogę usunąć swojego posta, co jest?
Jak dla mnie, to spokojnie może zadziałać... Wystarczy odwrócić łańcuch, łańcuch szukany i odpowiednio zinterpretować wynik Pos (odjąć od długości całego łańcucha i jeszcze pomniejszyć o długość łańcucha szukanego). Troszkę ew. eksperymentów (w stylu +1/-1) i będzie działać. Pozdr.