Delphi 7 将stringlist的内容与单个字符串匹配

Delphi 7 将stringlist的内容与单个字符串匹配,delphi-7,Delphi 7,我正在寻找一种简单的方法,将stringlist(从filter.txt加载)的内容与单个字符串进行匹配 假设字符串是“bla bla bla random words dog cat mouse random words”,我的字符串列表内容是: 房屋建筑小屋 狗猫老鼠 椅座吊床 因为“狗猫老鼠”在我的字符串列表中,所以我想显示消息(“找到匹配项!”) 有人举了一个简单的例子来说明如何在过滤器不区分大小写的情况下做到这一点吗? 如果单个字符串是例如“dog.cat.mouse”,我不需要匹

我正在寻找一种简单的方法,将stringlist(从filter.txt加载)的内容与单个字符串进行匹配

假设字符串是“bla bla bla random words dog cat mouse random words”,我的字符串列表内容是:

  • 房屋建筑小屋

  • 狗猫老鼠

  • 椅座吊床

因为“狗猫老鼠”在我的字符串列表中,所以我想显示消息(“找到匹配项!”)

有人举了一个简单的例子来说明如何在过滤器不区分大小写的情况下做到这一点吗?
如果单个字符串是例如“dog.cat.mouse”,我不需要匹配。

您可以简单地循环通过
TStringList
并使用
AnsiContainsText
(不区分大小写)或
AnsiCompareStr
(区分大小写)。例如,如果
Str
是要搜索的字符串,而
SL
TStringList
,则可以使用如下内容:

var
  i: Integer;
  Found: Boolean;
begin
  Found := False;
  for i := 0 to SL.Count - 1 do
    if AnsiContainsText(Str, SL[i]) then
    begin
      Found := True;
      Break;
    end;
  if Found then
    // SL[i] is the string that matched  
end;

AnsiContainsText
AnsiCompareStr
都可以在
StrUtils
单元中找到。

Aha,这非常有效!只需在用法中添加StrUtils:)@death glider1:我应该提到这一点;我已经把它添加到我的答案中,以供将来的读者阅读。谢谢。:-)