我想用"找到"进行搜索无论大写和小写(Locate case Insensitive)。 像这样:
Option Explicit
Dim data
With WScript.CreateObject("WScript.Shell")
data = .Exec("fc.exe /n 1.txt 2.txt").StdOut.ReadAll()
End With
Dim match
With New RegExp
.Pattern = "(?:^[ ]*[0-9].*?$[\r\n]+)+"
.Global = True
.MultiLine = True
For Each match in .Execute( data )
WScript.StdOut.WriteLine "---------------------------------------"
WScript.StdOut.WriteLine match.Value
Next
End With
使用Firebird,我不知道该怎么做。
Delphi XE5 + Firebird 2.5 + ZEOSDBO-7.1.4。
感谢您的帮助。
答案 0 :(得分:3)
Locate
函数是一个客户端工具,它在大多数(但不是全部)TDataSet后代组件中实现。
它不是“搜索”功能,换句话说,它对数据集从服务器检索的表行没有影响 - 您仍然必须以通常对您使用的数据集类型执行的任何方式执行此操作,例如通过指定SQL语句然后在数据集上调用Open
。
Locate
做的只是(并且仅)将数据集的光标移动到第一个匹配记录(如果有),否则返回False。换句话说,如果成功,它找到的第一个记录将成为数据集的当前记录,即由连接到数据集的db-aware控件显示的记录。
您引用的代码应该有效,提供您正在使用的TDataSet类型支持和已经填充了数据。当然,如果它设法找到匹配的记录,它将只返回True。
要查找匹配多个字段值的记录,您可以执行类似
的操作Found := Table1.Locate('field1;field2', VarArrayOf([Edit1.Text, Edit2.Text]), [loCaseInsensitive]);