易语言用不了FindStrFast可以用此接口来代替,对于找字命令,如果你先二次分割遍历麻烦,建议使用FindStrFastE命令,此函数比FindStrE要快很多,尤其是在字库很大时,或者模糊识别时,效果非常明显,推荐使用此函数。
另外由于此函数是只识别待查找的字符,所以可能会有如下情况出现问题。
比如 字库中有"张和三" 一共3个字符数据,然后待识别区域里是"张和三",如果用FindStrE查找 "张三"肯定是找不到的,但是用FindStrFastE却可以找到,因为"和"这个字符没有列入查找计划中 所以,在使用此函数时,也要特别注意这一点。
1、FindStr
.版本 2
.支持库 dm
dm_ret = dm.FindStr (713, 129, 754, 173, “寻”, “002222-000000”, 1, intX, intY)
.如果真 (intX ≥ 0 且 intY ≥ 0)
dm.MoveTo (intX, intY)
dm.LeftClick ()
2、FindStrE
.版本 2
.支持库 dm
.局部变量 POS, 文本型
.局部变量 POSZ, 文本型, , "0"
.局部变量 x, 整数型
.局部变量 y, 整数型
POS = dm.FindStrE (713, 129, 754, 173, “寻”, “002222-000000”, 1)
POSZ = 分割文本 (POS, “|”, )
.如果真 (到整数 (POSZ [1]) ≥ 0)
x = 到整数 (POSZ [2])
y = 到整数 (POSZ [3])
dm.MoveTo (x, y)
dm.LeftClick ()
.如果真结束
3、FindStrFast
.版本 2
.支持库 dm
.局部变量 dm_ret, 整数型
.局部变量 intX, 整数型
.局部变量 intY, 小数型
dm_ret = dm.FindStrFast (713, 129, 754, 173, “寻”, “002222-000000”, 1, intX, intY)
.如果真 (intX ≥ 0 且 intY ≥ 0)
dm.MoveTo (intX, intY)
dm.LeftClick ()
4、FindStrFastE
.版本 2
.支持库 dm
.局部变量 pos, 文本型
.局部变量 posz, 文本型, , "0"
.局部变量 intX, 整数型
.局部变量 intY, 小数型
pos = dm.FindStrFastE (713, 129, 754, 173, “寻”, “002222-000000”, 1)
posz = 分割文本 (pos, “|”, )
.如果真 (到整数 (posz [1]) ≥ 0)
intX = 到整数 (posz [2])
intY = 到整数 (posz [3])
dm.MoveTo (intX, intY)
dm.LeftClick ()
5、按键示例:
我们在课程里做了易语言的示例。
pos = dm.FindStrFastE(0,0,2000,2000,"长安","9f2e3f-000000",1.0)
pos = split(pos,"|")
If int(pos(0)) >= 0 Then
dm.MoveTo int(pos(1)),int(pos(2))
End If
pos = dm.FindStrFastE(0,0,2000,2000,"长安|洛阳","9f2e3f-000000",0.9)
pos = split(pos,"|")
If int(pos(0)) >= 0 Then
dm.MoveTo int(pos(1)),int(pos(2))
End If
// 查找时,对多行文本进行换行,换行分隔符是"|". 语法是在","后增加换行字符串.任意字符串都可以.
pos = dm.FindStrFastE(0,0,2000,2000,"长安|洛阳","9f2e3f-000000,|",0.9)
pos = split(pos,"|")
If int(pos(0)) >= 0 Then
dm.MoveTo int(pos(1)),int(pos(2))
End If
源码:511遇见易语言大漠找字FindStrE系列