pos2()

0

czy jest funkcja taka jak pos tylko szukajaca od tyłu?

0

Wydaje się że nie, ale można do tego wykorzystać funkcje pos().
Wystarczy napisać własną procedure lub funkcje

0

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

0

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 :)

0

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?

0

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.

1 użytkowników online, w tym zalogowanych: 0, gości: 1