如何实现 大小 写单词的替换的 问题!!!!!!!!!!!!!!!!!!!!!!!!
 有一个字符串   'This Is paper 纸'   ,现在要将 cup  这个单词替换成 desk ,但不能 改变其它字母的大小写!!!!例如:'This Is paper 纸'   改为  'This Is desk 纸'
'This Is PaPer 纸'   改为  'This Is desk 纸'
'This Is PAPeR 纸'   改为  'This Is desk 纸'
...
...因为 paper 这个单词中的字母大小写随时改变的!!!! 所以比较难替换!!!

解决方案 »

  1.   

    我试过不行呀!!!代码如下:
    var
    str:string  ;
    begin
    str:='This Is PaPer 纸' ;
         str:= AnsiReplaceStr(str,'paper','desk');
         showmessage(str)
      

  2.   

    uses Strutils;function TForm1.Replace(SrcStr, OldStr, NewStr: String): string;
    var
     tmpStr:String;
    begin
          tmpStr:=LowerCase(SrcStr);
           if Pos(LowerCase(OldStr),tmpStr)>0 then begin
              tmpStr:=AnsiReplaceStr(tmpStr,OldStr,NewStr);
              Result:=tmpStr;
           end;
    end;procedure TForm1.btn1Click(Sender: TObject);
    begin
     edt2.Text:=Replace(edt1.Text,'paper','desk');
    end;
      

  3.   

    uses StrUtils;function TForm1.Replace(SrcStr, OldStr, NewStr: string): string;
    var
      tmpStr: string;
    begin
      tmpStr := LowerCase(SrcStr);
      if Pos(LowerCase(OldStr), tmpStr) > 0 then
      begin
        tmpStr := AnsiReplaceStr(tmpStr, OldStr, NewStr);
        Result := tmpStr;
      end;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
      Showmessage(Replace('This Is PaPer ', 'paper', 'desk'));
    end;
      

  4.   

    ShowMessage(AnsiReplaceText('This Is PAPeR 纸','paper','desk'));
      

  5.   

    首部 function AnsiReplaceText(const AText, AFromText, AToText: string): string; $[StrUtils.pas
    功能 返回字符串AText中用子串AFromText替换成子串AToText的结果
    说明 不区分大小写
    参考 function SysUtils.StringReplace; type SysUtils.TReplaceFlags
    例子 Edit4.Text := AnsiReplaceText(Edit1.Text, Edit2.Text, Edit3.Text);