Format是一个很常用却又似乎很烦的方法本人试图对这个方法的帮助进行一些翻译让它有一个完整的概貌以供大家查询之用
首先看它的声明
function Format(const Format: string; const Args: array of const): string; overload;
事实上Format方法有两个种形式另外一种是三个参数的主要区别在于它是线程安全的但并不多用所以这里只对第一个介绍
function Format(const Format: string; const Args: array of const): string; overload;
Format参数是一个格式字符串用于格式化Args里面的值的Args又是什么呢?它是一个变体数组即它里面可以有多个参数而且每个参数可以不同如以下例子
Format(
my name is %
s
[
wind
]);
返回后就是my name is wind
现在来看Format参数的详细情况
Format里面可以写普通的字符串比如my name is但有些格式指令字符具有特殊意义比如%s格式指令具有以下的形式
%
[index
:
] [
] [width] [
prec] type
它是以%开始而以type结束type表示一个具体的类型中间是用来格式化type类型的指令字符是可选的
先来看看typetype可以是以下字符d 十制数表示一个整型值u 和d一样是整型值但它是无符号的而如果它对应的值是负的则返回时是一个的次方减去这个绝对值的数如
Format(
this is %u
[-
]);
返回的是this is
f 对应浮点数
e 科学表示法对应整型数和浮点数比如
Format(
this is %e
[
]);
返回的是this is E+等一下再说明如果将数的精度缩小
g 这个只能对应浮点型且它会将值中多余的数去掉比如
Format(
this is %g
[
]);
返回的是this is
n 只能对应浮点型将值转化为号码的形式看一个例子就明白了
Format(
this is %n
[
]);
返回的是this is
注意有两点一是只表示到小数后两位等一下说怎么消除这种情况 二是即使小数没有被截断它也不会也像整数部分一样有逗号来分开的
m钱币类型但关于货币类型有更好的格式化方法这里只是简单的格式化另外它只对应于浮点值
Format(
this is %m
[
]);
返回this is ¥
p 对应于指针类型返回的值是指针的地址以十六进制的形式来表示例如
var X:integer;
p:^integer;
begin
X:=;
p:=@X;
EditText:=Format(this is %p[p]);
end;
Edit的内容是this is F
s 对应字符串类型不用多说了吧
x 必须是一个整形值以十六进制的形式返回
Edit
Text:=Format(
this is %X
[
]);
返回是this is F
[] []