把一个整数转换为形如NNN,NNN,NNN的字符串输出,要求不能用inttostr之类的函数
解决方案 »
- Twebbrowser如何防止彈出這個錯誤呢
- 请教关于C/S EXE升级问题
- 多表查询语句问题,在线等!
- 如何根据弹出错误框中的错误地址找到对应原代码哪行?
- 急!急!急!如何成批修改dbgrid中的已选中的多条记录(不是连续的记录),如:选中了1,4,6条记录,现在将姓名字段的值 全部改为另一个值!!!
- 怎么读写注册表?
- 求救!!!我快疯了?
- 关于音符频率问题,请进!
- 请教如何作一个类似于IE中的地址栏?是否有此控件?
- adoquery.sql里的字符串是什么类型?为什么不能在edit.text中显示?
- 我重装了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;