多谢!但是我的字符是18位的,运行后提示 '000000000000000000'is not a vaild integer value 000000000000000000是我要运算的字符串,是不是长度的问题。
FormatFloat() 不错 学习ing
function IntToFixLengthStr(Value: Integer; StrLength: Integer; FillChar: Char): string; begin Result := IntToStr(Value); Result := StringOfChar(FillChar, StrLength - Length(Result)) + Result; end;
如果保证字符全部是数字的话可以用以下方法。 function GetNextNo(CurNo: String): String; var m_S:String; const len=6; begin m_S:=IntToStr(StrToInt(CurNo)+1); if length(m_S)<len then repeat m_S:='0'+m_S; until Length(m_S)>=len; result:=m_S; end;
for i := 1 to 9999 do begin case length(inttostr(i)) of 1: str := '000' + inttostr(i); 2: str := '00' + inttostr(i); 3: str := '0' + inttostr(i); 4: str := inttostr(i); end;
刚刚写得有点随手:下面的已做测试,加多少0都可以,注意各参数的类型。 function setNo(j:integer):string; var i:string; begin i:='00000000000000000000000'; i:=i+inttostr(j); result:=i; end;
to net_jun(小鸟) i:=i+inttostr(1);这样不是字符串的连接吗?怎么能够相加呢?你真的能够测试通过。我怎么就测试不行呢还是在后面加的。
var
i:string;
begin
i:='00000';
i:=i+inttostr(你转换回的变量);
result:=i;
end;
FormatFloat('000000', StrToInt(Str)+1);
'000000000000000000'is not a vaild integer value
000000000000000000是我要运算的字符串,是不是长度的问题。
begin
Result := IntToStr(Value);
Result := StringOfChar(FillChar, StrLength - Length(Result)) + Result;
end;
function GetNextNo(CurNo: String): String;
var m_S:String;
const len=6;
begin
m_S:=IntToStr(StrToInt(CurNo)+1);
if length(m_S)<len then
repeat
m_S:='0'+m_S;
until
Length(m_S)>=len;
result:=m_S;
end;
begin
case length(inttostr(i)) of
1: str := '000' + inttostr(i);
2: str := '00' + inttostr(i);
3: str := '0' + inttostr(i);
4: str := inttostr(i);
end;
function setNo(j:integer):string;
var
i:string;
begin
i:='00000000000000000000000';
i:=i+inttostr(j);
result:=i;
end;
i:=i+inttostr(1);这样不是字符串的连接吗?怎么能够相加呢?你真的能够测试通过。我怎么就测试不行呢还是在后面加的。
然后我调用你的函数,可是得出还不是我要的那个结果啊!