本帖最后由 yklovelife 于 2009-11-11 20:01:54 编辑

解决方案 »

  1.   

    msg:= Copy(a,1,LastDelimiter('g',a))
    f1:= Copy(a,Pos('f',a),2)
    f2:=Copy(a,length(a)-2,2);
      

  2.   

    补充下,msg,f1,f2 是任意一字符串,且长度不定。
      

  3.   

    在Delphi中处理字符串时,想获取该字符串中某一个符号最后出现的位置,可用LastDelimiter(substr,str);此函数在SysUtils包中,参数substr为要查找最后位置的子字符串,str为要处理的字符串。
    例如,有一文件路径字符串要处理: D:\Delphi\DelphiProject\MultiMedioProject\4.swf
    在此想获取此Flash文件的号数,即4.
    则可以这样处理:
    var
      StartPos:Integer;
      EndPos:Integer;
      len:Integer;
      str:string;
    begin
      str:='D:\Delphi\DelphiProject\MultiMedioProject\4.swf';
      StartPos:=LastDelimiter('\',str);//最后一个\的位置
      EndPos:=LastDelimiter('.',str);//最后一个.的位置
      len:=EndPos-StartPos-1;//总共要取的子字符数
      str:=Copy(str,StartPos+1,len);//获取子字符串
    end;
    完成。
    帮助楼主加深理解
      

  4.   

    那你怎么判断该在哪里截取呢?
    还是在中间加上特殊符号吧 
    msg|&&&&&&|f1|to|f2这样就好截取多了 
      

  5.   


    StringReplace &&&&&& -> "|"
    StringReplace to -> "|"msg|f1|f2  ?