ott*_*uit 6 delphi compare tstringlist find
Delphi 2007中是否有任何集成解决方案来检查TStringList是否包含某个值的一部分?
例如:
List.AddObject('This is a string', customStringObject1);
List.AddObject('This is a mushroom', customStringObject2);
List.AddObject('Random stuff', customStringObject3);
Run Code Online (Sandbox Code Playgroud)
搜索"这是一个"应该给我"真实",因为前两个元素包含这个部分.
到目前为止我唯一知道的方法是TStringList.find(string,integer),但这会执行完整的字符串比较,即只搜索这是一个字符串将返回true.
有什么建议?
Too*_*the 10
未集成,但您可以在Text属性上使用Pos函数:
Pos('This is a', List.Text)
Run Code Online (Sandbox Code Playgroud)
如果你想要它被集成,你可以为TStrings创建一个类助手.
不直接,没有.你必须要么:
1)调用Pos()的Text属性,如果你有很多字符串的效率不高.
2)手动循环遍历列表,调用Pos()每个String.更高效,但也更多编码.
3)从中派生一个新类TStringList并覆盖其虚拟CompareStrings()方法,以便根据需要比较字符串(默认实现简单调用,AnsiCompareStr()或者AnsiCompareText(),取决于CaseSensitive属性).如果找到匹配则返回0.然后TStringList.Find(),您可以使用CompareStrings()内部调用的方法(请注意TStringList.Sort(),但是如果您调用则可以避免这种情况TStringList.CustomSort()).
| 归档时间: |
|
| 查看次数: |
12074 次 |
| 最近记录: |