比如
找出   ab    在   aaabaaaabababaaabbbbabab中所有出现的位置用AnsiPos能实现吗?

解决方案 »

  1.   

    如果用POS ,那么pos可以找到子串在目标串中第一次出现的位置,找到后,把已找到部分截取,再用POS
      

  2.   

    记得uses StrUtils;-----procedure TForm1.Button1Click(Sender: TObject);
    var
      s:string;
      n:integer;
      l:tstringlist;
    begin
      s :=  'aaabaaaabababaaabbbbabab';
      l := tstringlist.Create;
      s := stringreplace(s,'ab','/',[rfReplaceAll]);
      l.Delimiter := '/';
      l.DelimitedText := s;
      n := l.Count;
      if (leftstr(s,1) = '/') or (rightstr(s,1) = '/')    then n := n -1
      else
      if  (leftstr(s,1) = '/') and  (rightstr(s,1) = '/')  then n := n - 1;
      showmessage(inttostr(n));                       ///n即为你所需要的
      l.Free;
    end;
      

  3.   

    //Delphi6
    var
      I, L: Integer;
      S: string;
      T: string; //输出用
    begin
      S := 'aaabaaaabababaaabbbbabab';
      I := Pos('ab', S);
      L := I;
      while I > 0 do
      begin
        T := S;
        Insert('|', T, L); //输出用
        Memo1.Lines.Add(Format('%.2d:%s', [L, T]));  //输出用
        I := Pos('ab', Copy(S, L + 1, MaxInt));
        if I > 0 then L := L + I;
      end;
    end;