function mf_AddZero_Righ(ShuJuP:PChar;ChangDu:Integer):PChar;
var
restr:string;
strlength,i:integer;
ShuJu:string;
begin
ShuJu:=strpas(ShuJuP);
restr:=ShuJu;
strlength:= Length(ShuJu);
for i:= strlength to ChangDu-1 do
begin
restr:='0'+restr;
end;
Result:=PChar(restr);
end;
这里一个完成左起补齐字符串的 function ,在测试中发现
.......
mf_AddZero_Righ('3',9);
.......
得到的结果是 000000003
.......
mf_AddZero_Righ('123456789',9);
得到是结果却是 12345678
高手们这是问什么哪 ???
var
restr:string;
strlength,i:integer;
ShuJu:string;
begin
ShuJu:=strpas(ShuJuP);
restr:=ShuJu;
strlength:= Length(ShuJu);
for i:= strlength to ChangDu-1 do
begin
restr:='0'+restr;
end;
Result:=PChar(restr);
end;
这里一个完成左起补齐字符串的 function ,在测试中发现
.......
mf_AddZero_Righ('3',9);
.......
得到的结果是 000000003
.......
mf_AddZero_Righ('123456789',9);
得到是结果却是 12345678
高手们这是问什么哪 ???
解决方案 »
- 个别图形条形码长度短无法识别
- 资源文件能正常读取,但是在保存时出现错误
- [DirectX]关于DirectX for Delphi的问题
- 请问连接服务端的时候报错误“Asynchronous Socket error 10060”,是什么原因?
- 熟悉SQLServer+Database高手请进:异常类处理问题
- 求!
- 新手问题,我取得注册表的root串,怎样把它转化为相应的HKEY_CURRENT_CONFIG这样的东西.
- 如何利用图片的指定透明颜色来创建任意形状的窗体?不使用win2000的特性。
- 文本框中的【光标】问题
- 如何在程序运行时不先出现主窗体.
- D语言菜鸟 求助帮解释一段代码
- 三个三角了,专家分999了,散分
function ExtStrLen(const source: string; fillchar: Char; MaxLength: integer): string;
var
len:Integer;
begin
Result := source;
len := MaxLength - Length(source);
if Len > 0 then
Result := StringOfChar(fillchar, len) + Result;
end;调用时为 ExtStrLen('1234', '0', 8) 最后结果是00001234
var
restr:string;
strlength,i:integer;
ShuJu:string;
begin
ShuJu:=strpas(ShuJuP);
restr:=ShuJu;
strlength:= Length(ShuJu);
for i:= strlength to ChangDu-1 do
begin
restr:='0'+restr;
end;
Result:=PChar(restr);
end;
我把上面 function 改为
function mf_AddZero_Righ(ShuJu:string;ChangDu:Integer):string;
var
restr:string;
strlength,i:integer;
begin
restr:=ShuJu;
strlength:= Length(ShuJu);
for i:= strlength to ChangDu-1 do
begin
restr:='0'+restr;
end;
Result:=restr;
end;
然后使用
.......
mf_AddZero_Righ('3',9);
.......
得到的结果是 000000003
.......
mf_AddZero_Righ('123456789',9);
得到是结果是 123456789
到底是哪里有问题啊,PChar的原因吗?改怎么解释哪?