var
Str,s1: strings1:=copy(Str,length(Str)-4,4);
if s1='/100' then
  begin
    Str:=Copy(Str,1,length(Str)-4);
    Str:=Str+'%';
  end;

解决方案 »

  1.   

    var
       str,substr:string;
       i:integer;
    begin
      str:='(A+B)*5/100....'
      substr:='5/100';
      i:=pos(substr,sub);
      while i>0 do 
      begin
        str:=copy(str,1,i-1)+'5/%'+copy(str,i+5,length(str)-(i+5)+1);
        i:=pos(substr,sub);
      end;
    end;
      

  2.   

    呵呵,把5也包进去了,应该去掉。
    var
      str,substr:string;
      i:integer;
    begin
      str:='(A+B)*5/100....'
      substr:='/100';
      i:=pos(substr,sub);
      while i>0 do 
      begin
        str:=copy(str,1,i-1)+'/%'+copy(str,i+4,length(str)-(i+4)+1);
        i:=pos(substr,sub);
      end;
    end; 
      

  3.   

    var
    Str,s1: string;
    begin
    s1:=copy(Str,length(Str)-3,4);
    if s1='/100' then
      begin
        Str:=Copy(Str,1,length(Str)-4);
        Str:=Str+'%';
      end;
    end;
      

  4.   

    最简单的办法:
    str := StringReplace( str, '/100', '%' );
      

  5.   

    to Raptor(猛禽):
    多谢!我又学会一个函数。开卷有意啊!!
    不过好像还少一个参数,我提你补上:
    str := StringReplace( str, '/100', '%',[rfReplaceAll] ); 
      

  6.   

    谢谢各位帮忙,特别是 Raptor(猛禽) 和 ldr(刘子) colacoca(我是一瓶倒过来的可口可乐) 三位高手,再次感谢!