首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

编码最后两位加1,位数不确定解决办法

2012-02-19 
编码最后两位加1,位数不确定比如bm 0031我要得到0032000019得到000020最后两位加1,但多少数不确定,加1后位

编码最后两位加1,位数不确定
比如

bm 0031
我要得到0032

000019得到000020
最后两位加1,但多少数不确定,加1后位数不变

[解决办法]

Delphi(Pascal) code
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单元
Delphi(Pascal) code
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;
[解决办法]
Delphi(Pascal) code
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函数吧:
Delphi(Pascal) code
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; 

热点排行