把这些字符放进一个char 类型的数组里,然后,从头到尾扫过去。
也可以在源字符串上把原来的部分切掉,在POS,得出的位置加上被切的部分的长度即可。

解决方案 »

  1.   

    strTemp := '6543221';
    nPos := pos('2',strTemp);
    strTemp := copy(strTemp,nPos +1,length(strTemp));
    nPos1 := pos('2',strTemp );
    Pos := nPos + nPos1;
    没有测试过,很笨不好意思。
    可以写函数返回要查的子出现的第几次的位置可能 
      

  2.   

    strTemp := '6543221';
    nPos := pos('2',strTemp);
    strTemp := copy(strTemp,nPos +1,length(strTemp));
    nPos1 := pos('2',strTemp );
    Pos := nPos + nPos1;
    没有测试过,很笨不好意思。
    可以写函数返回要查的子出现的第几次的位置 
      

  3.   

    不要使用很多的POS!只要扫描一次就可以了!
    用一个循环,扫描字符串,如果字符=指定的字符,计数器夹1,如果计数器=指定的位置,then break,返回计数器!这么简单的算法,自己写程序吧。
      

  4.   


    Function MyPos(n:integer;Str:String,Achar:Char):integer;
    var i,j:integer;
    begin
    Result:=-1;
    J:=1;
    for i:=1 to Length(Str) do
      begin
        if Str[i]=AChar then
          if j=n then  // 若 n=2 ,则找到第二个的位置;
            begin 
              Result:=i;
              break;
            end
          else
            j:=J+1;
      end;
    end;
      

  5.   

    用Pos找到了以后将那一位改成chr(1)好了,再pos
      

  6.   

    我的站点有一个资源文件,里面有一个 IPos 函数
    chinafuss.com