5

Ansi 文字列でのみ機能する便利な Format() 関数はありますか? Format() で AnsiString を使用するたびに警告が表示されるためです。いいえ、Delphi で AnsiStrings をワイド文字列と Ansi 文字列の間で変換したくありません。それは物事を非常に遅くしているだけです。また、文字列定数を強制的に Ansi にする方法はありますか? これをチェックしてください

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

次に、 SomeStrFunc('ABC') を使用すると、ワイド文字列バージョンが呼び出されます。Ansi バージョンを使用して、Delphi に強制的に「ABC」定数を AnsiChars に保存させたい場合はどうすればよいでしょうか。

4

2 に答える 2

11

ユニットFormat内関数のAnsi版あり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 に答える