function SetNewString(const S: string): string;
const
Len = 10;
var
I: Integer;
begin
I := Len - Length(S);
while I >= 0 do
begin
Result := Result + '0';
Dec(I);
end;
Result := Result + S
end;
好像是很不简练,我想不道其它方法了。
const
Len = 10;
var
I: Integer;
begin
I := Len - Length(S);
while I >= 0 do
begin
Result := Result + '0';
Dec(I);
end;
Result := Result + S
end;
好像是很不简练,我想不道其它方法了。
我当然不只是简单的相加了,如果这样,我还问什么
to copy_paste(木石三)
我也觉得比较麻烦了,因为我早就想到了,不知道有没有更好的方法可以在数值小于8位的时候嫩能够前面补充0使他达到8位
procedure LeftFillStr(var Result:String;const Str2: String; Len: Integer);
begin
while length(Result) < Len do Result := Str2 + Result
end;调用:var
S: string;
begin
S := '12';
LeftFillStr(S, '0', 10);
ShowMessage(S);
end;
哈哈。好东西。
FormatFloat( '00000000', StrToInt( '12' ) );
s: string;fillchar(s0,sizeof(s0),#48);
s:='12';
s:=copy(s0,1,length(s0)-length(s))+s;
ShowMessage(S);
edit1.text:=format('%p',[pointer(strtoint(str1))]);
pointer(99):00000099
但是然后strtoint(edit1.text)呢?
这里只是一个技巧问题,(针对这个问题而言)
i, len : Integer;
...
SetLength( S, 100 );
i:=12;
len := wvsprintf( PChar(s), '%08d', @i );
S[Len+1] := Chr(0);
...
outputstr := inputstr;
while length(outputstr) < 8 do
outputstr := '0' + outputstr;
end;
str:需要格式化的字符串内容
nLen:格式化的结果的长度
Edit1.Text:=Copy('00000000'+str,Length('00000000'+str)-nLen+1,Length('00000000'+str));
基本思想是:
如果结果统一为8位,就在此字符串前加8个0,然后取最后的8位即可。
正确的写法是:
procedure TForm1.Button2Click(Sender: TObject);
var
i:integer;
s:string;
begin
i:=10;
s:='$'+inttostr(i);
edit1.Text:=format('%p',[pointer(strtoint(s))]);
end;