把一个整数转换为形如NNN,NNN,NNN的字符串输出,要求不能用inttostr之类的函数
解决方案 »
- Delphi多库连接操作方案
- dbgrid 输入的小数 只能精确到 小数4位 ,精确到多位怎么设置
- 怎样在dbgrid中显示表的所以记录??
- fastreport中如何实现如下打印功能
- 求助:怎么截取日期型数据的年份!
- 请问为什么读出的纪录带空格
- 各位帮帮忙吧,近来看看这个数据库问题!!!!!!!!!!!!!!!!!!!
- 关于LINE方法
- 关于sql里的bigint类型的数据的查询问题。
- 我第一次学delphi 难吗有什么好书
- 我重装了Delphi 7,原来的QReport没了,请问如何再装上?
- 如何截取一个字符串的部分字符?比如,S:string; S:='abcdefghi' 取前3个字符abc?
function GetFileSizeString(const Size: Integer): string;
var
I,J: Integer;
begin
Result := IntToStr(Size);
J := 0;
for I := Length(Result) downto 2 do
begin
Inc(J);
if J = 3 then
begin
Insert(',',Result,I);
J := 0;
end;
end;
end;
var
OutChar:Char;
Count:integer;
begin
Result:='';
Count:=0;
while Value>10 do
begin
OutChar:=Char((Value Mod 10)+Ord('0'));
Value:=Value div 10;
Inc(Count);
Result:=OutChar+Result;
if (Count mod 3)=0 then
Result:=','+Result;
end;
Result:=Char(Value+Ord('0'))+Result;
end;测试通过,给分吧.
改成
while Value>=10 do
var s:string;
begin
if para<1000 then begin
s:=chr(para div 100+48)
+chr((para mod 100) div 10+48)
+chr(para mod 10+48);
end
else begin
s:=Convert(para div 1000);
result:=s+','+chr((para mod 1000) div 100+48)
+chr(((para mod 1000) mod 100) div 10+48)
+chr((para mod 1000) mod 10 +48);
end;
end;
function Convert(para:integer):string;
var s:string;
begin
if para<1000 then begin
result:=chr(para div 100+48)
+chr((para mod 100) div 10+48)
+chr(para mod 10+48);
end
else begin
s:=Convert(para div 1000);
result:=s+','+chr((para mod 1000) div 100+48)
+chr(((para mod 1000) mod 100) div 10+48)
+chr((para mod 1000) mod 10 +48);
end;
end;
function Convert(para:integer):string;
begin
if para<1000 then begin
result:=chr(para div 100+48)
+chr((para mod 100) div 10+48)
+chr(para mod 10+48);
end
else begin
result:=Convert(para div 1000)+','+chr((para mod 1000) div 100+48)
+chr(((para mod 1000) mod 100) div 10+48)
+chr((para mod 1000) mod 10 +48);
end;
end;