比如
800/758/569
想得到800/758/   有几个/和文字数目不确定

解决方案 »

  1.   

    刚才没有理解你的意思,,可以使用POS
    procedure TForm1.BitBtn1Click(Sender: TObject);
    var
          sStr:string;
      begin
          if   not   OpenPictureDialog1.Execute   then
              Abort;
             sStr   :=  edit1.text//函路径的文件名
               if lentth(sstr)>1
               Begin
                  while   pos('/',   sStr)   <>   0   do
                      sStr   :=   copy(sStr, 1,  pos('/',   sStr)   +   1);
                end;//最后不含路径的文件名
                showmessage(sstr);
      end;
      

  2.   

    去掉上面的
    `
     发表于:2007-10-08 19:19:062楼 得分:0 
    刚才没有理解你的意思,,可以使用POS       if   not   OpenPictureDialog1.Execute   then 
              Abort;  
     
      

  3.   

    function GetStr(str:string):string;
      function getpos(str:string):integer;
      var
      len,i:integer;
      begin
      result:=0;
      len:=length(str);
      for i:=len downto 1 do
         if str[i]='/' then
            begin
            result:=len-i+1;
            break;
            end;
      end;
    var
    index:integer;
    begin
    index:=getpos(str);
    result:=copy(str,1,length(str)-index+1);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
    str:string;
    begin
    str:='800/758/569';
    showmessage(getstr(str));
    end;
      

  4.   

    WANGXUELLD ,我比较欣赏你的语法,但按你做,我取到了800/而已,有什么不对呀
      

  5.   


    function ExtractStr(Str:WideString):WideString;
    begin
      Result:=Copy(Str,1,Length(Str)-Pos('/',ReverseString(Str))+1);
    end;procedure TForm1.Button1Click(Sender: TObject);
    var
      Str:Widestring;
    begin
      Str:=ExtractStr('802340/758234/569324234');
      ShowMessage(Str);
    end;