c++builder Format函数的用法

C++Builder 中的 Format 函数作用与 Delphi 中的是一样的,相信不用我废话了。但是唯一不同的是参数。由于 Delphi 支持“开参数”和动态数组特性,所以 Delphi 中的 Format 只有两个参数,其中后一个参数就是一个动态开参数常数数组。请注意我的用词!Delphi 的动态开参数常数数组的类型声明是 array of const,这种动态常数开数组的每一个元素可以是不同的类型。而且使用时的语法类似 Delphi 中的集合:采用两个方括号把不同类型的变量括起来,也可以采用声明一个 TVarRec 类型的数组来容纳不同的类型变量(具体请参阅其帮助文档)。而在 C++Builder 中,没有像 Delphi 中的那中语法特性,BCB 中的 Format 函数其第一个参数与 Delphi 的 Format 是类似的(一个格式化描述字符串),而后面有两个参数,第二个参数是一个 TVarRec 类型的数组指针,第三个参数是这个数组的最后一个元素的索引值!因为 C++ 不支持动态数组语法,也没有什么“开参数”之类的怪异特性,所以当你传递数组时,你必须同时传递数组的大小(Format 要求的是数组的最后一个元素的索引值,因此大同小异)。刚才我说过,在 Delphi 中也可以用 TVarRec 数组代替方括号的方法,其实本质是一样的。当然了,在 C++Builder 中,我们没有必要在每次使用 Format 函数时都先声明一个 TVarRec 数组,然后再把要用于输出的变量赋给 TvarRec 数组的每一个元素,最后还要传递 TVarRec 数组的最后元素索引。其实,我们可以使用一个 C++Builder 预先声明好的宏 ARRAYOFCONST,直接传入要格式化输出的变量,请看下面的例子: 

Memo1->Text = Format( 
"My name is %s, I'm %d years old.", 
ARRAYOFCONST(("Phoenix2000", 22)) //注意两个括号
); 

OK, 一切就搞定了!这个宏的实质是传递两个参数给 Format 函数,一个是 TVarRec 数俎指针,另一个是这个数俎的最后元素的索引,大家可以参照一下有关帮助文档。另外,C++Builder 中的 AnsiString 类也有一个 Format 类成员函数,不过这个成员函数是个静态函数,使用时要注意一下。

猜你喜欢

转载自blog.csdn.net/aasmfox/article/details/84285004