Reputation: 806
Is there a handy Format() function that works only on Ansi strings? Because everytime I use an AnsiString with Format() I get a warning. And no, I don't want Delphi to convert my AnsiStrings back and forth between Wide and Ansi strings. That is just making things awfully slower. Also, is there a way to force a string constant to be Ansi? check this out
function SomeStrFunc(S: AnsiString): AnsiString; overload;
function SomeStrFunc(S: String): String; overload;
and then when I use SomeStrFunc('ABC') it will call the wide string version. What if I want to use the Ansi version and force Delphi to store 'ABC' constant in AnsiChars.
Upvotes: 5
Views: 4904
Reputation: 595402
Serg answered your question about an AnsiString
version of Format()
. I'll answer your other question.
String literals are encoded based on the context they are used, so to force a literal to a particular encoding, you have to tell the compiler which encoding it needs to use, eg:
SomeStrFunc(AnsiString('ABC'));
Or
const
cABC: AnsiString = 'ABC';
SomeStrFunc(cABC);
Upvotes: 7
Reputation: 27493
There is Ansi version of Format
function in System.AnsiStrings
unit
Upvotes: 11