易语言大漠找字FindStrE系列

易语言用不了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系列