procedure TForm3.FormCreate(Sender: TObject);
var
  st: string;
  spos: integer;
begin
  st := 'R,123,36';
  spos := st.LastIndexOf(',');
  caption := st.Substring(spos + 1, st.Length - spos);
end;

解决方案 »

  1.   

    编写一个函数:
    function Getstr1(S,S1:string):string;
    var i,j,L:integer;
    begin
      Result := '';
      L:=Length(S);
      J:=0;
      for i:=L downto 1 do
        if S[i]=S1 then
        begin
          J:=i;
          break;
        end;
      if J>0 then Result := Copy(S,J+1,L-j);
    end;新建 一个工程,测试一下:
    procedure TForm1.Button1Click(Sender: TObject);
    begin
      Edit3.Text:=Getstr1(Edit1.text,Edit2.text);
    end;
      

  2.   

    循环取字,也可从前向后:
    function Getstr(S,S1:string):string;
    var i,j,L:integer;
    begin
      Result := '';
      L:=Length(S);
      J:=0;
      for i:=1 to L do
        if S[i]=S1 then J:=i;
      if J>0 then Result := Copy(S,J+1,L-j);
    end;
      

  3.   

      s := 'R,123,36';
      ShowMessage(Copy(s, LastDelimiter(',', s)+1, MAXINT));
      

  4.   

    需要这么复杂?reversestring后Copy+Pos,然后再reversestring回来就可以了。哪里用的着什么循环...
      

  5.   

    需要那么麻烦吗?
    还 Reverse 过来,Reverse 回去的。
    str.LastIndexOf 再 str.substring 就行,
    又简单又明瞭。
      

  6.   

    function Getstr1(S,S1:string):string;
    var i,j,L:integer;
    begin
      Result := '';
      L:=Length(S);
      J:=0;
      for i:=L downto 1 do
        if S[i]=S1 then
        begin
          J:=i;
          break;
        end;
      if J>0 then Result := Copy(S,J+1,L-j);
    end;
      

  7.   

    高版本才有LastIndexOf 吧?我说的是D7下Reverse应该是最简单的,不用循环。
      

  8.   

    这个好,以前我都用reversestring来弄这个的,你这个更简单,没想到D7有LastDelimiter这么爽的函数,
      

  9.   


    declaration
    function LastDelimiter(const Delimiters, S: string): integer;
    description
    Returns the index of the last occurence in a string of the characters cpecified.
    If none of the characters in Delimiters appears in string S, function returns zero. Delimiters cannot be a multibyte string, and we cannot use #0 as one of the delimiters.example
    var s : string;
        i : integer;s:='http://delphi.about.com';
    i:= LastDelimiter('.', s);
    //i=20;