请问大家
Delphi中是否有实现php的strtr函数同样功能的函数?如果没有,能否帮忙写一个函数实现同样功能呢?急求,非常感谢!!!

解决方案 »

  1.   

    搜索字符串吗?
    楼主搜搜看Pos或者是FastPos
      

  2.   

    楼上的朋友,不仅仅是搜索呢,我找段php源码一看就明白了。但是不知道怎么用Delphi实现例子 1
    <?php
    echo strtr("Hilla Warld","ia","eo");
    ?>输出:Hello World
    例子 2
    <?php
    $arr = array("Hello" => "Hi", "world" => "earth");
    echo strtr("Hello world",$arr);
    ?>输出:Hi earth
      

  3.   

    对的对的。。比如strtr("aababababccbbccaactkkdccbb","ab","85"); 这样所有的字母a都被提换成了数字8,字母b都被提换成数字5 格式上第二个参数和第三个参数的位数应该是一一对应的,所以我在想是不是可以用stringreplace
    函数外加循环语句和数组,写成一个Delphi的函数。
      

  4.   

    Delphi中,用循环+StringReplace来逐个替换,目前Delphi中还没有这样的翻译函数。
      

  5.   


    我也是这么想的,但是得写个函数,小可刚学习Delphi不久,还不太熟悉,能否请仁兄提供一段示例代码参考学习?谢谢!!
      

  6.   

    function srp(sa,sb:string):string ;
    var
    tmp:string;
    s: array [0..4] of string;
    st:tstringlist;
    begin
    St:=TStringList.Create;
    ExtractStrings([','],[],PChar(sa),St);
    s[0]:=st.Strings[0];
    s[1]:=st.Strings[1];
    ExtractStrings([','],[],PChar(sb),St);
    s[2]:=st.Strings[2];
    s[3]:=st.Strings[3];
    tmp:=stringreplace(Form1.edit1.text,s[0],s[2],[rfReplaceAll]);
    result:=stringreplace(tmp,s[1],s[3],[rfReplaceAll]);
    end;
    procedure TForm1.Button1Click(Sender: TObject);
    begin
    Label1.Caption:=srp(Edit2.text,Edit3.Text);
    end;有个Q群的朋友写了这么一段代码提供思路,发布出来供参考,呵呵。