5

是否有一个仅适用于 Ansi 字符串的便捷 Format() 函数?因为每次我将 AnsiString 与 Format() 一起使用时,都会收到警告。不,我不希望 Delphi 在 Wide 和 Ansi 字符串之间来回转换我的 AnsiStrings。那只会让事情变得非常慢。另外,有没有办法强制字符串常量为 Ansi?看一下这个

function SomeStrFunc(S: AnsiString): AnsiString; overload;
function SomeStrFunc(S: String): String; overload;

然后当我使用 SomeStrFunc('ABC') 时,它将调用宽字符串版本。如果我想使用 Ansi 版本并强制 Delphi 在 AnsiChars 中存储 'ABC' 常量怎么办。

4

2 回答 2

11

单元中有Ansi版本的Format函数System.AnsiStrings

于 2011-10-07T06:17:05.687 回答
7

AnsiStringSerg回答了您关于Format(). 我会回答你的另一个问题。

字符串文字是根据它们使用的上下文进行编码的,因此要将文字强制为特定编码,您必须告诉编译器它需要使用哪种编码,例如:

SomeStrFunc(AnsiString('ABC'));

或者

const
  cABC: AnsiString = 'ABC';

SomeStrFunc(cABC);
于 2011-10-07T06:36:07.117 回答