比如bm 0031
我要得到0032000019得到000020
最后两位加1,但多少数不确定,加1后位数不变 

解决方案 »

  1.   


    Uses StrUtils;
    var
      Str:String;
      I:Integer;
    begin
      Str:='0032';
      I:=StrToInt(RightStr(Str,1));
      Str:=LeftStr(Str,Length(Str)-1)+IntToStr(i+1);  //进位要求呢?  
    end;
      

  2.   

    下面的这个方法不需要 StrUtils单元procedure TForm1.BitBtn3Click(Sender: TObject);
    var
      Str:String;
      I:Integer;
    begin
      Str:='0032';
      I:=StrToInt(Str[Length(Str)]);
      Str:=Copy(Str,1,Length(Str)-1)+IntToStr(i+1);
      ShowMessage(Str);
    end;
      

  3.   


    procedure TForm1.ShowNum(num: string);
    var
      i,len: integer;
    begin
      len := Length(num);
      i := StrToInt(num)+1;
      ShowMessage(Format('%.'+InttoStr(len)+'d',[i]));
    end;调用
    ShowNum('000093');
      

  4.   

    只是最后两位加1?试试下面的NextNo函数吧:function NextNo(S: String): String;
    const
      ANextNo : array['0'..'9'] of Char = ('1','2','3','4','5','6','7','8','9','0');
    var
      L : Integer;
    begin
      Result := S;
      L := Length(S);
      if L >= 1 then
      begin
        Result[L] := ANextNo[S[L]];
        if (S[L] = '9') and (L >= 2) then
          Result[L - 1] := ANextNo[S[L - 1]];
      end;
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
      ShowMessage (NextNo('000010'));
      ShowMessage (NextNo('000019'));
      ShowMessage (NextNo('000099'));
    end;