用Pos可以查找一个子串第一次出现的位置,如果是第二次出现的位置该怎么查找呢?谢谢

解决方案 »

  1.   

    当中有个判断条件 
    while Pos(substr,str)>0 do
    begin
    end;
    就ok了
      

  2.   

    procedure TForm1.Button1Click(Sender: TObject);
    var str,str2:string;
    begin
      str:='123123123';
      str2:='2';
      while pos(str2,str)>0 do
      begin
        memo1.Lines.Add(Inttostr(pos(str2,str)));
        str:=copy(str,pos(str2,str)+1,length(str)-pos(str2,str));
      end;
    end;
      

  3.   

    if ADOQueryMftm.FieldByName('p_SFC_Measure_Weight').AsString='' then
              begin
                for i:=0 to GetStrNum(ADOQueryMftm.FieldByName    ('p_SFC_Measure_Weight').AsString,'\') do
                begin
                  substr:=ADOQueryMftm.FieldByName('p_SFC_Measure_Weight').AsString;
                  Memo15.Lines.Add ( copy(substr,1,pos('/',substr)-1));
                  substr:=copy(substr,pos('\',substr)+1,length(substr)- pos('\',substr));
                end;
    第一次找到把它刪除,然後再從剩下的串中再次查找依次循環 
              end;
      

  4.   

    用两次Pos不就行了!去掉第一次前面的子串,再去掉第二次后面的子串,剩下的不就是你想要得了!