【问题标题】:Is there ContainsStr equivalent for unicode strings?是否存在与 unicode 字符串等效的 ContainsStr?
【发布时间】:2026-01-13 03:10:01
【问题描述】:

今天我在我们的代码中修复了一些警告,其中之一是 “W1058 隐式字符串转换,在 ContainsStr 函数中可能会丢失从 'string' 到 'AnsiString' 的数据”

在搜索了一段时间后,我决定在这里询问此函数的等效函数,该函数将两个 unicode 字符串作为参数。我希望找到类似ContainsWideStr(Delphi 2007 及更低版本)或ContainsUnicodeStr(Delphi 2009+)之类的东西,但我找不到这些。

我知道我可以自己做这样的事情:

function ContainsUnicodeStr(const AText, ASubText: String): Boolean;
begin
  Result := Pos(ASubText, AText) > 0;
end;

但是,我想避免重复已经在 Delphi 中的代码,但我根本不知道在哪里。

【问题讨论】:

  • 如果在任何地方,它应该在包含 ContainsStr 函数的同一单元中?除非那是在某个名称中带有 Ansi 的单元中,否则我希望它在 strutils 单元中。
  • here 描述的例程需要两个 Unicode 字符串。
  • 谢谢,不知怎的,我被卡住了,忘了检查这个核心单元! :)

标签: string delphi unicode delphi-2009


【解决方案1】:

根据文档,StrUtils.ContainsStr 适用于 Unicode。但当然,AnsiStrings.ContainsStr 没有。

【讨论】:

    最近更新 更多