从0开始计数,这样计算出来的是10,只需要+1即可 var str: string; n : integer; begin str := 'C:\WINDOWS\NOTEPAD.EXE'; n := length(str) - pos('\',ReverseString(str)); showmessage(inttostr(n + 1));
楼主的问题应该改成: 怎样才能知道一个字符在一个字符串中最右边的那个的位置啊? function PosReverse(const SubStr, Str: String): Integer; var i : Integer; begin Result := 0; for i := Length(Str) - Length(SubStr) downto 1 do begin if copy(Str, i, Length(SubStr)) = SubStr then begin Result := i; break; end; end; end;...... ShowMessage (IntToStr(PosReverse('\', 'C:\WINDOWS\NOTEPAD.EXE'))); ......
var
str: string;
n : integer;
begin
str := 'C:\WINDOWS\NOTEPAD.EXE';
n := length(str) - pos('\',ReverseString(str));
showmessage(inttostr(n + 1));
function PosReverse(const SubStr, Str: String): Integer;
var
i : Integer;
begin
Result := 0;
for i := Length(Str) - Length(SubStr) downto 1 do
begin
if copy(Str, i, Length(SubStr)) = SubStr then
begin
Result := i;
break;
end;
end;
end;......
ShowMessage (IntToStr(PosReverse('\', 'C:\WINDOWS\NOTEPAD.EXE')));
......
转换成widestring