字串为MyString,MyString[placef[0]]为第一个'\':
var
    i, j, leng: Integer;
    placef : array [0..9] of integer;
Begin
    j := 0;
    leng := length(MyString);
    for i := 0 to leng do
        if MyString[i]='\'
            then begin
                placef[j] :=i;
                j := j+1;
            end;
end;

解决方案 »

  1.   

    用copy()函数自右向左取,直到取到'\'
      

  2.   

    function LastPos(const SubStr, S: string): Integer;
    var
      I: Integer;
      TempS, TempSubStr: string;
    begin
      TempS := '';
      TempSubStr := '';
      for I := Length(S) downto 1 do AppendStr(TempS, S[I]);
      for I := Length(SubStr) downto 1 do AppendStr(TempSubStr, SubStr[I]);
      Result := Pos(TempSubStr, TempS);
    end; { LastPos }
      

  3.   

    用copy函数,比较笨的做法:)
    s := 'ab\cd\ef\';
    for i := 1 to length(s) do
    begin
      t := copy(s, 1, 1);
      if t = '\' then
        MyPos := i;
    end;
    showmessage(inttostr(MyPos));
      

  4.   

    何必那么麻烦,用StrRScan就可以了。
      

  5.   

    搞错了: 最右边一个是LastStr;
    var
        i, j, k, leng: Integer;
        placef : array [0..9] of integer;
        LastStr: Char;
    Begin
        j := 0;
        leng := length(MyString);
        for i := 0 to leng do
            if MyString[i]='\'
                then begin
                    placef[j] :=i;
                    j := j+1;
                end;
       LastStr:= MyString[placef[j-1];
    end;