3

2 つの AnsiString を比較して、テキストが同じかどうかを確認する必要があります (大文字と小文字は区別されません)。

var
  text1, text2: AnsiString;
begin
  if SameText(text1, text2) then
  ...

Unicode 以前の Delphi ではSameText関数を使用していましたが、最新の Delphi では Unicode バージョンしかないためW1057 Implicit string cast from 'AnsiString' to 'string'、呼び出し時に次の警告が表示されます。

私の質問は、コンパイラの警告を表示せずに (そして両方の文字列を不必要に にキャストすることなく)、最新の Delphi で AnsiStrings を適切に比較する方法ですUnicodeString(text)

4

1 に答える 1

6

実際、AnsiStrings文字列ユーティリティの古いバージョンの AnsStrings をすべて保持するモジュールがあります :)

したがって、解決策は次のとおりです。

uses
  System.AnsiStrings;
...
var
  text1, text2: AnsiString;
begin
  if AnsiStrings.SameText(text1, text2) then
  ...
于 2013-09-25T09:21:17.483 に答える