给你三个函数吧,我以前用foxpro时经常用,现在在delphi中我就编写了自己用的。在这里你要用 padl('XS',4,'0');代码如下:function padr(instring:string;numchars:byte;fmtstr:char):string; begin if numchars<=length(trim(instring)) then begin result:=copy(trim(instring),1,numchars); end else begin result:=trim(instring)+stringofchar(fmtstr,numchars-length(trim(instring))); end; end;function padl(instring:string;numchars:byte;fmtstr:char):string; begin if numchars<=length(trim(instring)) then begin result:=copy(trim(instring),1,numchars); end else begin result:=stringofchar(fmtstr,numchars-length(trim(instring)))+trim(instring); end; end;function padc(instring:string;numchars:byte;fmtstr:char):string; begin if numchars<=length(trim(instring)) then begin result:=copy(trim(instring),1,numchars); end else if odd(numchars-length(trim(instring))) then begin result:=stringofchar(fmtstr,((numchars-1-length(trim(instring))) div 2))+trim(instring)+stringofchar(fmtstr,((numchars+1-length(trim(instring))) div 2)); end else begin result:=stringofchar(fmtstr,((numchars-length(trim(instring))) div 2))+trim(instring)+stringofchar(fmtstr,((numchars-length(trim(instring))) div 2)); end;end; 请试一试,经验不足,不要见笑。
begin
if numchars<=length(trim(instring)) then
begin
result:=copy(trim(instring),1,numchars);
end
else
begin
result:=trim(instring)+stringofchar(fmtstr,numchars-length(trim(instring)));
end;
end;function padl(instring:string;numchars:byte;fmtstr:char):string;
begin
if numchars<=length(trim(instring)) then
begin
result:=copy(trim(instring),1,numchars);
end
else
begin
result:=stringofchar(fmtstr,numchars-length(trim(instring)))+trim(instring);
end;
end;function padc(instring:string;numchars:byte;fmtstr:char):string;
begin
if numchars<=length(trim(instring)) then
begin
result:=copy(trim(instring),1,numchars);
end
else
if odd(numchars-length(trim(instring))) then
begin
result:=stringofchar(fmtstr,((numchars-1-length(trim(instring))) div 2))+trim(instring)+stringofchar(fmtstr,((numchars+1-length(trim(instring))) div 2));
end
else
begin
result:=stringofchar(fmtstr,((numchars-length(trim(instring))) div 2))+trim(instring)+stringofchar(fmtstr,((numchars-length(trim(instring))) div 2));
end;end;
请试一试,经验不足,不要见笑。
我说明一下吧。
以楼主的题目为例。把‘XS’格式化为‘00XS’。
padl(instring:string;numchars:byte;fmtstr:char);
第一个参数是你原有的字符串,第二个是填充后的总长度,最后一个是要补空的格式字符。现在有‘XS’要变成四位长度,而且要在左边补‘0’,
所以就调用padl('XS',4,'0')即可。
padr是在右补字符,padc是在两边补字符。如有不懂欢迎提问。
begin
Edit1.Text:=Format('00%s',['XS']);
end;