1.Format 根据指定所需要的格式,格式化字符串。
原型:
例子:
s: string;
begin
//指令类型type
s:=Format( '最大整数是:%d;最小整数是:%d', [MaxInt,Low(Integer)]);
//返回:最大整数是:2147483647;最小整数是:-2147483648
{提示:格式指令必须以%开始,不区分大小写,%d代表一个整数;第二个参数是一个变体数组}
s:=Format( '最大的无负号整数是:%u', [High(Cardinal)]);
//返回:最大的无负号整数是:4294967295
{%u表示一个无负号整数}
s:=Format( '输入-2的结果是:%u', [-2]);
//返回:输入-2的结果是:4294967294
{如果对应%u的是个负数,则返回:无负号整数最大值-这个数的绝对值+1}
s:=Format( '%s!%s', ['你好','我是万一']);
//返回:你好!我是万一
{%s表示字符串}
s:=Format( '%f', [Pi]);
//返回:Pi的值是:3.14
{%f表示浮点数,保留或凑够两位小数点}
s:=Format( '%g', [01.2345000]);
//返回:1.2345
{%g表示浮点数,会去掉多余的0}
s:=Format( '%n', [12345.6789]);
//返回:12,345.68
{%n表示浮点数,整数部分使用千位分隔符,保留两位小数点}
s:=Format( '%m', [12345.6789]);
//返回:¥12,345.68
{%m表示浮点数,加货币记号,转换结果取决于系统的地域设置}
s:=Format( '%e', [12345.6789]);
//返回:1.23456789000000E+004
{%e用科学计数法表示整数或浮点数}
s:=Format( '%p', [@Self]);
//返回:0012F5BC
{%p表示指针地址,用十六进制表示}
s:=Format( '%x', [255]);
//返回:FF
{%x用十六进制表示一个整数}
//Index
s:=Format( '%s%s', ['万','一']);
s:=Format( '%0:s%1:s', ['万','一']);
//返回:万一
{上面两行的结果是一样的,0:对应数组中的第一个值;1:对应数组中的第二个值}
s:=Format( '%1:s%0:s', ['万','一']);
//返回:一万
{翻转了一下顺序}
s:=Format( '%1:s%0:s%0:s%1:s', ['万','一']);
//返回:一万万一
{反复使用}
//Width与对齐方式
s:=Format( '%d,%8d,%d', [1,2,3]);
//返回:1,2,3
{给第二个值指定了8个字符的宽度,缺少的用空格填充;如果指定少了则无效}
s:=Format( '%d,%-8d,%d', [1,2,3]);
//返回:1,2,3
{-表示左对齐,默认是右对齐的;-符号在Width前面、Index后面}
//指定精度prec
s:=Format( '%.9f', [Pi]);
//返回:3.141592654
{指定小数点的位数,取值范围1-9,输入0也当1用}
s:=Format( '%.5d', [12]);
//返回:00012
{这是给整数指定位数,如果小了则无效}
s:=Format( '%.3s', ['Format']);
//返回:For
{给字符串指定位数,如果大了则无效}
s:=Format( '%.3e', [123.456]);
//返回:1.23E+002
{给科学计数法指定位数}
//指令顺序:
{"%"[index":"]["-"][width]["."prec]type}
ShowMessage(s);
end;
2.FormatDateTime 格式化日期值
原型:
例子:
s: string;
begin
//FormatDateTime的参数1是String格式指令,参数2是TDateTime类型的时间
s:=FormatDateTime( 'c',Now); {返回:2007-12-1823:56:05}
{指令c表示用短格式显示日期与时间}
s:=FormatDateTime( 'd',Now); {返回:19}
s:=FormatDateTime( 'd',StrToDateTime( '2008-1-1')); {返回:1}
{d表示日期}
s:=FormatDateTime( 'dd',Now); {返回:19}
s:=FormatDateTime( 'dd',StrToDateTime( '2008-1-1')); {返回:01}
{dd表示双位日期}
s:=FormatDateTime( 'ddd',Now); {返回:星期三}
s:=FormatDateTime( 'dddd',Now); {返回:星期三}
{ddd与dddd表示星期;可能对不同的语种会有区别}
s:=FormatDateTime( 'ddddd',Now); {返回:2007-12-19}
{ddddd五个d表示短格式日期}
s:=FormatDateTime( 'dddddd',Now); {返回:2007年12月19日}
{dddddd六个d表示长格式日期}
s:=FormatDateTime( 'e',Now); {返回:7}
{e表示年,1位}
s:=FormatDateTime( 'ee',Now); {返回:07}
{ee表示年,2位}
s:=FormatDateTime( 'eee',Now); {返回:2007}
s:=FormatDateTime( 'eeee',Now); {返回:2007}
{eee与eeee返回4位数年}
s:=FormatDateTime( 'm',Now); {返回:12}
{m表示月,1位}
s:=FormatDateTime( 'mm',StrToDateTime( '2008-1-1')); {返回:01}
{mm表示月,2位}
s:=FormatDateTime( 'mmm',Now); {返回:十二月}
s:=FormatDateTime( 'mmmm',Now); {返回:十二月}
{mmm与mmmm表示长格式月}
s:=FormatDateTime( 'y',Now); {返回:07}
s:=FormatDateTime( 'yy',Now); {返回:07}
s:=FormatDateTime( 'yyy',Now); {返回:2007}
s:=FormatDateTime( 'yyyy',Now); {返回:2007}
{yyyyyyyyyy表示年;和e略有不同}
s:=FormatDateTime( 't',Now); {返回:0:21}
s:=FormatDateTime( 'tt',Now); {返回:0:22:13}
{ttt表示时间}
s:=FormatDateTime( 'ampm',Now); {返回:上午}
s:=FormatDateTime( 'tampm',Now); {返回:0:24上午}
{ampm表示上午、下午}
s:=FormatDateTime( 'h',StrToDateTime( '2007-12-309:58:06')); {返回:9}
s:=FormatDateTime( 'hh',StrToDateTime( '2007-12-309:58:06')); {返回:09}
{hhh表示时}
s:=FormatDateTime( 'n',StrToDateTime( '2007-12-309:58:06')); {返回:58}
s:=FormatDateTime( 'nn',StrToDateTime( '2007-12-309:58:06')); {返回:58}
{nnn表示分}
s:=FormatDateTime( 's',StrToDateTime( '2007-12-309:58:06')); {返回:6}
s:=FormatDateTime( 'ss',StrToDateTime( '2007-12-309:58:06')); {返回:06}
{sss表示秒}
s:=FormatDateTime( 'z',Now); {返回:24}
s:=FormatDateTime( 'zz',Now); {返回:524}
s:=FormatDateTime( 'zzz',Now); {返回:524}
{zzzzzz表示毫秒}
s:=FormatDateTime( 'yy/mm/dd',Now); {返回:07/12/19}
s:=FormatDateTime( 'yy/mm/dd',Now); {返回:07-12-19}
s:=FormatDateTime( 'yy-mm-dd',Now); {返回:07-12-19}
s:=FormatDateTime( 'yy*mm*dd',Now); {返回:07*12*19}
{使用分隔符,-是默认的,/是与-等效的,假如我非要用/显示呢?}
s:=FormatDateTime( 'yy"/"mm"/"dd',Now); {返回:07/12/19}
s:=FormatDateTime( '"当前时间是:"yyyy-m-dh:n:s:zz',Now);
{返回:当前时间是:2007-12-190:47:16:576}
{混入的字符串要包含在双引号中}
ShowMessage(s);
end;
3.FormatFloat 格式化浮点数
原型:
例子:
s: string;
begin
//FormatFloat的参数1是String格式指令,参数2是实数类型Extended
s:=FormatFloat( '###.###', 12. 3456);
//返回:12.346
s:=FormatFloat( '000.000', 12. 3456);
//返回:012.346
s:=FormatFloat( '#.###', 12. 3);
//返回:12.3
s:=FormatFloat( '0.000', 12. 3);
//返回:12.300
s:=FormatFloat( '#,#.#', 1234567);
//返回:1,234,567
s:=FormatFloat( '0,0.0', 1234567);
//返回:1,234,567.0
s:=FormatFloat( '0.00E+0', 1234567);
//返回:1.23E+6
s:=FormatFloat( '0.00E+00', 1234567);
//返回:1.23E+06
//在科学计数法中使用#好像不合适?
ShowMessage(s);
end;
参看资料:
http://www.cnblogs.com/del/archive/2007/12/18/1005161.html
http://www.cnblogs.com/del/archive/2007/12/19/1005205.html
http://www.cnblogs.com/del/archive/2007/12/19/1005212.html
http://www.cnblogs.com/sonicit/archive/2007/06/04/769882.html
1.Format 根据指定所需要的格式,格式化字符串。
原型:
例子:
s: string;
begin
//指令类型type
s:=Format( '最大整数是:%d;最小整数是:%d', [MaxInt,Low(Integer)]);
//返回:最大整数是:2147483647;最小整数是:-2147483648
{提示:格式指令必须以%开始,不区分大小写,%d代表一个整数;第二个参数是一个变体数组}
s:=Format( '最大的无负号整数是:%u', [High(Cardinal)]);
//返回:最大的无负号整数是:4294967295
{%u表示一个无负号整数}
s:=Format( '输入-2的结果是:%u', [-2]);
//返回:输入-2的结果是:4294967294
{如果对应%u的是个负数,则返回:无负号整数最大值-这个数的绝对值+1}
s:=Format( '%s!%s', ['你好','我是万一']);
//返回:你好!我是万一
{%s表示字符串}
s:=Format( '%f', [Pi]);
//返回:Pi的值是:3.14
{%f表示浮点数,保留或凑够两位小数点}
s:=Format( '%g', [01.2345000]);
//返回:1.2345
{%g表示浮点数,会去掉多余的0}
s:=Format( '%n', [12345.6789]);
//返回:12,345.68
{%n表示浮点数,整数部分使用千位分隔符,保留两位小数点}
s:=Format( '%m', [12345.6789]);
//返回:¥12,345.68
{%m表示浮点数,加货币记号,转换结果取决于系统的地域设置}
s:=Format( '%e', [12345.6789]);
//返回:1.23456789000000E+004
{%e用科学计数法表示整数或浮点数}
s:=Format( '%p', [@Self]);
//返回:0012F5BC
{%p表示指针地址,用十六进制表示}
s:=Format( '%x', [255]);
//返回:FF
{%x用十六进制表示一个整数}
//Index
s:=Format( '%s%s', ['万','一']);
s:=Format( '%0:s%1:s', ['万','一']);
//返回:万一
{上面两行的结果是一样的,0:对应数组中的第一个值;1:对应数组中的第二个值}
s:=Format( '%1:s%0:s', ['万','一']);
//返回:一万
{翻转了一下顺序}
s:=Format( '%1:s%0:s%0:s%1:s', ['万','一']);
//返回:一万万一
{反复使用}
//Width与对齐方式
s:=Format( '%d,%8d,%d', [1,2,3]);
//返回:1,2,3
{给第二个值指定了8个字符的宽度,缺少的用空格填充;如果指定少了则无效}
s:=Format( '%d,%-8d,%d', [1,2,3]);
//返回:1,2,3
{-表示左对齐,默认是右对齐的;-符号在Width前面、Index后面}
//指定精度prec
s:=Format( '%.9f', [Pi]);
//返回:3.141592654
{指定小数点的位数,取值范围1-9,输入0也当1用}
s:=Format( '%.5d', [12]);
//返回:00012
{这是给整数指定位数,如果小了则无效}
s:=Format( '%.3s', ['Format']);
//返回:For
{给字符串指定位数,如果大了则无效}
s:=Format( '%.3e', [123.456]);
//返回:1.23E+002
{给科学计数法指定位数}
//指令顺序:
{"%"[index":"]["-"][width]["."prec]type}
ShowMessage(s);
end;
2.FormatDateTime 格式化日期值
原型:
例子:
s: string;
begin
//FormatDateTime的参数1是String格式指令,参数2是TDateTime类型的时间
s:=FormatDateTime( 'c',Now); {返回:2007-12-1823:56:05}
{指令c表示用短格式显示日期与时间}
s:=FormatDateTime( 'd',Now); {返回:19}
s:=FormatDateTime( 'd',StrToDateTime( '2008-1-1')); {返回:1}
{d表示日期}
s:=FormatDateTime( 'dd',Now); {返回:19}
s:=FormatDateTime( 'dd',StrToDateTime( '2008-1-1')); {返回:01}
{dd表示双位日期}
s:=FormatDateTime( 'ddd',Now); {返回:星期三}
s:=FormatDateTime( 'dddd',Now); {返回:星期三}
{ddd与dddd表示星期;可能对不同的语种会有区别}
s:=FormatDateTime( 'ddddd',Now); {返回:2007-12-19}
{ddddd五个d表示短格式日期}
s:=FormatDateTime( 'dddddd',Now); {返回:2007年12月19日}
{dddddd六个d表示长格式日期}
s:=FormatDateTime( 'e',Now); {返回:7}
{e表示年,1位}
s:=FormatDateTime( 'ee',Now); {返回:07}
{ee表示年,2位}
s:=FormatDateTime( 'eee',Now); {返回:2007}
s:=FormatDateTime( 'eeee',Now); {返回:2007}
{eee与eeee返回4位数年}
s:=FormatDateTime( 'm',Now); {返回:12}
{m表示月,1位}
s:=FormatDateTime( 'mm',StrToDateTime( '2008-1-1')); {返回:01}
{mm表示月,2位}
s:=FormatDateTime( 'mmm',Now); {返回:十二月}
s:=FormatDateTime( 'mmmm',Now); {返回:十二月}
{mmm与mmmm表示长格式月}
s:=FormatDateTime( 'y',Now); {返回:07}
s:=FormatDateTime( 'yy',Now); {返回:07}
s:=FormatDateTime( 'yyy',Now); {返回:2007}
s:=FormatDateTime( 'yyyy',Now); {返回:2007}
{yyyyyyyyyy表示年;和e略有不同}
s:=FormatDateTime( 't',Now); {返回:0:21}
s:=FormatDateTime( 'tt',Now); {返回:0:22:13}
{ttt表示时间}
s:=FormatDateTime( 'ampm',Now); {返回:上午}
s:=FormatDateTime( 'tampm',Now); {返回:0:24上午}
{ampm表示上午、下午}
s:=FormatDateTime( 'h',StrToDateTime( '2007-12-309:58:06')); {返回:9}
s:=FormatDateTime( 'hh',StrToDateTime( '2007-12-309:58:06')); {返回:09}
{hhh表示时}
s:=FormatDateTime( 'n',StrToDateTime( '2007-12-309:58:06')); {返回:58}
s:=FormatDateTime( 'nn',StrToDateTime( '2007-12-309:58:06')); {返回:58}
{nnn表示分}
s:=FormatDateTime( 's',StrToDateTime( '2007-12-309:58:06')); {返回:6}
s:=FormatDateTime( 'ss',StrToDateTime( '2007-12-309:58:06')); {返回:06}
{sss表示秒}
s:=FormatDateTime( 'z',Now); {返回:24}
s:=FormatDateTime( 'zz',Now); {返回:524}
s:=FormatDateTime( 'zzz',Now); {返回:524}
{zzzzzz表示毫秒}
s:=FormatDateTime( 'yy/mm/dd',Now); {返回:07/12/19}
s:=FormatDateTime( 'yy/mm/dd',Now); {返回:07-12-19}
s:=FormatDateTime( 'yy-mm-dd',Now); {返回:07-12-19}
s:=FormatDateTime( 'yy*mm*dd',Now); {返回:07*12*19}
{使用分隔符,-是默认的,/是与-等效的,假如我非要用/显示呢?}
s:=FormatDateTime( 'yy"/"mm"/"dd',Now); {返回:07/12/19}
s:=FormatDateTime( '"当前时间是:"yyyy-m-dh:n:s:zz',Now);
{返回:当前时间是:2007-12-190:47:16:576}
{混入的字符串要包含在双引号中}
ShowMessage(s);
end;
3.FormatFloat 格式化浮点数
原型:
例子:
s: string;
begin
//FormatFloat的参数1是String格式指令,参数2是实数类型Extended
s:=FormatFloat( '###.###', 12. 3456);
//返回:12.346
s:=FormatFloat( '000.000', 12. 3456);
//返回:012.346
s:=FormatFloat( '#.###', 12. 3);
//返回:12.3
s:=FormatFloat( '0.000', 12. 3);
//返回:12.300
s:=FormatFloat( '#,#.#', 1234567);
//返回:1,234,567
s:=FormatFloat( '0,0.0', 1234567);
//返回:1,234,567.0
s:=FormatFloat( '0.00E+0', 1234567);
//返回:1.23E+6
s:=FormatFloat( '0.00E+00', 1234567);
//返回:1.23E+06
//在科学计数法中使用#好像不合适?
ShowMessage(s);
end;
参看资料:
http://www.cnblogs.com/del/archive/2007/12/18/1005161.html
http://www.cnblogs.com/del/archive/2007/12/19/1005205.html
http://www.cnblogs.com/del/archive/2007/12/19/1005212.html
http://www.cnblogs.com/sonicit/archive/2007/06/04/769882.html