Delphi XE2 AnsiFormat()和ANSI String常量

时间:2011-10-07 03:58:54

标签: string delphi delphi-xe2 widestring ansistring

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

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

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

2 个答案:

答案 0 :(得分:11)

Format单位

中有System.AnsiStrings函数的Ansi版本

答案 1 :(得分:7)

Serg回答了您关于AnsiString版本Format()的问题。我会回答你的另一个问题。

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

SomeStrFunc(AnsiString('ABC'));

或者

const
  cABC: AnsiString = 'ABC';

SomeStrFunc(cABC);