3

我需要比较两个 AnsiStrings 以查看它们是否具有相同的文本(忽略大小写)。

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 回答