举例:abcdededaaaffgdgefgfg,从中截出d和f之间的串,f为d后面出现的第一个f,d为字符串中的第一个d,结果为ededaaa,怎样实现?

解决方案 »

  1.   

    s:='abcdededaaaffgdgefgfg';
    result:=copy(s,pos('d',s)+1,pos('f',s)-pos('d',s));result就是结果字符串
      

  2.   

    自己编一个,以下程序已经过验证:
    Procedure TForm1.CopyDToF();
    Var
       Str,SubStr:String;
       D_Pos,F_Pos:Integer;
    Begin
      Str:='abcdededaaaffgdgefgfg';
      CharPos(Str,'d',1,D_Pos);
      CharPos(Str,'f',D_Pos+1,f_Pos);
      SubStr:=Copy(Str,D_pos+1,F_Pos-D_Pos-1);
      Showmessage(Str+'#13'+SubStr);
    End;Procedure TForm1.CharPos(Str,Char:String;StartPos:Integer;var FindPos:Integer);
    Var
       Str_L:integer;
       Find:Boolean;
    Begin
       Find:=false;
       FindPos:=Startpos;
       While(not Find) do
       Begin
          FindPos:=FindPos+1;
          if Str[FindPos]=Char then
             Find:=true;
       End;
    End;
        
      

  3.   

    to zjwzzhy(zhy) 
    如果在第一个'd'以前有'f'咋办?