原来的问题没人回答,自已解决了:) 换一个小问题把分送出去!! (100分)

  • 主题发起人 主题发起人 xiaohewanwan
  • 开始时间 开始时间
X

xiaohewanwan

Unregistered / Unconfirmed
GUEST, unregistred user!
如何把一个字符串格式化为'000000'的形式
如:'123' 变为 '123000' 或000123

 
具体原因我不清楚。
但是调用动态库需要注意几个问题:
1、尽量不使用String,最好使用指针。
2、动态库声明最好加上Stdcall,当然,一定要注意动态库内部声明和调用模块相一致。
3、对于动态库中使用ActiveX控件,必须使用Coinitialize。(声明在在Activex)
 
'123'+'000'或‘000’+‘123’不行吗?
 
用一个循环就够了;
 
format函数不久解决了?!
 
我有一个函数;
type sDirection=(s_Left,s_Right);

function FillStr(sStr, fStr: string; i: integer;sides:sDirection): String;
begin
if sides=s_Left then
begin
while Length(sStr)<i do
sStr:=fStr+sStr;
Result:=sStr;
end
else
begin
while Length(sStr)<i do
sStr:=sStr+fStr;
Result:=sStr;
end;
end;
使用:
ss:=FillStr('123','0',6,s_Left)->'000123'
ss:=FillStr('123','0',6,s_Right)->'123000'
 
function format_000000(str:string):string;
var bb:string
begin
bb:=copy('000000'+str,length(str),6);
result:=bb;
end;
用:
ss:=format_000000('123');
ok了!!
 
zhangkan的可以
 
goujie的方法最简单,执行效率最好;
zhangkan的可以;

 
Format('%.12d', [123])
result
000000000123
 
同意hpretty
用他的方法最好
 
Function withZero(num:integer;lenth:integer):string;
var //把整数转换为指定长度的字符串,前导0
i:integer;
str1,str2:string;
begin
str1:=inttostr(num);
str2:='';
if length(str1)>lenth then
begin
showmessage('数据长度超过指定的长度');
exit;
end;
i:=lenth-length(str1);
while i>0 do
begin
str2:=str2+'0';
i:=i-1;
end;
result:=str2+str1;
end;
 
谢了,各位!
 
补充:
goujie的函数要在更改一个小地方才能得出正确的结果,WHY??
function format_str(str:string):string;
var bb:string ;
begin
bb:=copy('000000'+str,[green]length(str)+1[/green],6);
result:=bb;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
showmessage(format_str(edit1.text))
end;
 
后退
顶部