2014-02-05 88 views
0

我正在尋找一種簡單的方法來匹配字符串列表(從filter.txt加載)與單個字符串的內容。將字符串列表的內容與單個字符串匹配

假設字符串爲「唧唧歪歪隨機單詞狗貓鼠隨機單詞」,和我的的StringList的內容是:

  • 房屋建築艙

  • 狗貓鼠

  • 椅子座位吊椅

由於'狗貓老鼠'是在我的字符串列表中我想ShowMessage('找到匹配!')

任何人都有一個簡單的例子如何做到這一點,沒有過濾器區分大小寫? 如果單個字符串是例如'dog.cat.mouse',我不需要匹配。

回答

1

您可以簡單地遍歷TStringList並使用AnsiContainsText(區分大小寫)或AnsiCompareStr(區分大小寫)。舉例來說,如果Str是你要搜索的字符串,SLTStringList,你可以使用這樣的事情:

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; 

兩個AnsiContainsTextAnsiCompareStr可以在StrUtils單位被發現。

+0

啊哈,完美的作品!只需添加StrUtils即可使用:) – Deathglider1

+0

@ Deathglider1:我應該提到這一點;我已經將它添加到了未來讀者的答案中。謝謝。 :-) –