编码最后两位加1,位数不确定
比如
bm 0031
我要得到0032
000019得到000020
最后两位加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;
[解决办法]
下面的这个方法不需要 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;
[解决办法]
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');
[解决办法]
只是最后两位加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;