procedure TForm1.Button1Click(Sender: TObject); VAR s:string; substr:string; i:integer; a:integer; temp:string; begin s:=edit1.Text; temp:=s; a:=0; for i:=0 to length(s)-1 do begin substr:=Copy(s, i, 1); if (substr='0') then begin a:=a+1; end; end; s:=inttostr(strtoint(s)+001); edit1.Text:=Copy(temp,1,a-1)+s; end;
虽然只有10分,也给你写点代码吧,谁叫现在经济危机呢!var i,len:integer; begin len := Length(Trim(Edit1.Text)); i := StrToInt(Edit1.Text); i := i+1; ShowMessage(Format('%.'+IntToStr(len)+'d',[i]));//格式化为5个长度,00002 end;不要告诉我上面的代码不能运行,我试验过了才考过来的。 界面上放个TEdit控件吧
newstr := inttostr(strtoint(str) + 1)
while len < length(str) do
begin
newstr := '0' + newstr;
end;
var
i:integer;
begin
i := StrToInt('001');
i := i+1;
ShowMessage(Format('%.5d',[10]));//格式化为5个长度,00002
end;
ShowMessage(Format('%.5d',[i]));//格式化为5个长度,00002
是你说的不明白吧,你的001是string还是integer吖,楼上的都给出了那你还不如说001是string 或许有0001001是integer, 还有 00001 是要5位的还是说其实是前面还有,如 A001
VAR
s:string;
substr:string;
i:integer;
a:integer;
temp:string;
begin
s:=edit1.Text;
temp:=s;
a:=0;
for i:=0 to length(s)-1 do
begin
substr:=Copy(s, i, 1);
if (substr='0') then
begin
a:=a+1;
end;
end;
s:=inttostr(strtoint(s)+001);
edit1.Text:=Copy(temp,1,a-1)+s;
end;
len: integer;
tmp: integer;
tmpstr: string
begin
len := length('0012');
tmp := strtoint('0012');
tmp := tmp + 1;
tmpstr := strtoint(tmp);
case length(tmp) of 1:
tmpstr := '000' + tmpstr;
2: tmpstr := '00' + tmpstr;
3: tmpstr := '0' + tmpstr;
//4: tmpstr := '' + tmpstr;
end;
edit1.text := tmpstr;
end; 简单明了,楼主给分吧
i,len:integer;
begin
len := Length(Trim(Edit1.Text));
i := StrToInt(Edit1.Text);
i := i+1;
ShowMessage(Format('%.'+IntToStr(len)+'d',[i]));//格式化为5个长度,00002
end;不要告诉我上面的代码不能运行,我试验过了才考过来的。
界面上放个TEdit控件吧