سلام
این رو می دونم. فقط در پیدا کردن محل شروع جستجو و دوبار معکوس کردنش گیج شدم.
این کد رو نوشتم:
function TForm1.RevPosEx2(SubS,S:String;P:Word):Word;
Var
I,L,L2:Word;
begin
Result:=0;
SubS:=ReverseString(SubS);
S:=ReverseString(S);
L:=Length(SubS)-1;
L2:=Length(S)+1;
P:=P-1+L;
If P>Length(S) then
P:=1
Else
P:=L2-P;
P:=PosEx(SubS,S,P);
If P=0 then
Exit;
P:=P+L;
Result:=L2-P;
end;
یک TEdit روی فرم گذاشتم.و اینطور امتحان کردم:
ShowMessage(IntToStr(RevPosEx(Edit1.Text,'ABCDE',5 ))+#13+IntToStr(RevPosEx2(Edit1.Text,'ABCDE',5)));
نتیجه دو تابع یکسان بود.اما هنوز مطمئن نیستم.
نمی دونم چرا میگند انسان از کامپیوتر باهوشتره!!