比如p00001  想得到 p00002
    p00009  得到   p00010
 
或者 b2008015-09 得到 b2008015-10因为位数不能确定,所以我想用最后两位加1的方法,但注意位数不能变

解决方案 »

  1.   

    function IncLast(s:string):string;
    var
    ss:string;
    i,len:integer;
    begin
    len:=length(s);
    ss:=copy(s,len-1,2);
    i:=strtoint(ss);
    inc(i);
    ss:=inttostr(i);
    result:=copy(s,1,len-2)+ss;
    end;procedure TForm1.Button1Click(Sender: TObject);
    begin
    showmessage(inclast('b2008015-09'));
    end;
      

  2.   

    呵呵,其实我没表达清楚,对不起!这个方法应该不错,有点复杂,其实是这样的比如edit1.text='b2008015-09'(不确定)我想edit2.text= edit1.text的最后两位加一
    最好一句话
      

  3.   

    edit2.text= IncLast(edit1.text);//////////也是一句话。
      

  4.   


    procedure TForm1.Button1Click(Sender: TObject);
    var
    i:integer;
    begin
     if TryStrToInt(copy(edit1.Text,length(edit1.Text)-1,maxint),i) then
     edit2.Text:= FormatFloat('00',i+1);
    end;
      

  5.   

    其实原意是这样的
     
    有一编号(edit1.text)为b2008015-09(也有能为b2008015-09-01,长度不确定,但最后两位肯定是数字)我想实现这个编号的下级首先我在数据里查找编号如为0则edit2.text编号为b2008015-09-01
    adoquery2.Last;
      if adoquery2.RecordCount=0 then
        edit2.Text:=edit1.Text+'-'+'01'
      else
    ------该功能实现了
    如果不为零则取最大的那位后面加1假如数据库中有
    b2008015-09-01
    b2008015-09-02
    b2008015-09-03
    b2008015-09-04
    b2008015-09-05那当然edit2.Text=b2008015-09-06呀,怎么实现,简单的一句话
      

  6.   

     edit15.Text:=FormatFloat(StringOfChar('0',length(adoquery2.Fields[2].asstring)),
    adoquery2.Fields[2].AsInteger+1);
    有人告诉我从这句话可以受到启发并解决,我没用过StringOfChar,不懂
    我可以肯定的是这些编码第一个都为字母,后面全为数字,
      

  7.   


    这里StringOfChar就是返回length(adoquery2.Fields[2].asstring)), 长度的'0'的字符串,作为FormatFloat的第一个参数来使用。“我可以肯定的是这些编码第一个都为字母,后面全为数字”/XXXXXXXXXXXXXXXXXXXXXXXXXX'b2008015-09-01’因为中间有'-',这样的字符串是不能用上面的代码处理的,你的要求是最后2位转换成整数+1。
      

  8.   

    it民工的代码我试了一下,虽然我不理解,但能满足我的要求!非常不错
    procedure TForm1.Button1Click(Sender: TObject);
    var
    i:integer;
    begin
     if TryStrToInt(copy(edit1.Text,length(edit1.Text)-1,maxint),i) then
     edit2.Text:= FormatFloat('00',i+1);
    end;
      

  9.   

    copy(x,1,lenth(x)-2)+ copy(100+strtoint(copy(x,length(x)-2,2))+1,2,2)
      

  10.   

    1 前N-2位
    2 后俩位转成INT +1 +100 变成STRING取后俩位