开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 2598|回复: 5
收起左侧

[易语言纯源码] 字节集模糊查找,支持偏色,通配符,,,,,,,,

[复制链接]
发表于 2019-5-23 18:09:04 | 显示全部楼层 |阅读模式   广东省广州市
分享源码
界面截图: -
是否带模块: 纯源码
备注说明: -
.版本 2
.程序集 程序集1
.子程序 _启动子程序, 整数型, , 本子程序在程序启动后最先执行
.局部变量 临时字节集, 字节集
.局部变量 开始时间, 整数型
.局部变量 计次, 整数型
.局部变量 lzj, 字节集
.局部变量 lsz, 整数型, , "2"
.局部变量 临时数组, 整数型, , "0"
.局部变量 i, 整数型
临时字节集 = 取空白字节集 (12345678 × 3) + { 20, 21, 22, 120, 130, 140, 220, 230, 240 } + 取空白字节集 (200)
.计次循环首 (12345678 × 3, 计次)
    临时字节集 [计次] = 计次
.计次循环尾 ()
开始时间 = 取启动时间 ()
lzj = { 18, 19, 20, 216, 230, 240 }
lsz [1] = 1
lsz [2] = 3
输出调试文本 (寻找字节集a (lzj, lsz, 临时字节集, { 6, 7, 8 }, 1, 取字节集长度 (临时字节集), 临时数组, 假))
输出调试文本 (“耗时:” + 到文本 (取启动时间 () - 开始时间))
.计次循环首 (取数组下标 (临时数组, ), i)
    输出调试文本 (临时数组 [i])
.计次循环尾 ()
返回 (0)  ' 可以根据您的需要返回任意数值
.子程序 寻找字节集a, 逻辑型
.参数 需查找的内容, 字节集
.参数 位置排列数组, 整数型, 数组
.参数 被查找的内容, 字节集
.参数 偏移RGB, 字节集
.参数 起点, 整数型
.参数 终点, 整数型
.参数 返回位置数组, 整数型, 数组
.参数 全部匹配, 逻辑型, , 真,返回所有,假,只返回一个
.局部变量 需查找数据长度, 整数型
.局部变量 被查找数据长度, 整数型
.局部变量 队列长度, 整数型
.局部变量 ia, 整数型
.局部变量 ib, 整数型
.局部变量 通用逻辑, 逻辑型
.局部变量 tx, 整数型
.局部变量 ty, 整数型

' 需查找的内容 格式 {10,220,20,50,60,50}
' 位置排列数组 整数数组[] 对应需查找内容数量/3,每个代表需查找的内容的位置 例:需查找的内容[1][2][3] 的位置放在 位置排列数组[1] 中间跳过相当于通配符
' 偏移RGB {10,10,10}
' 起点
' 终点
重定义数组 (返回位置数组, 假, 0)
队列长度 = 取数组下标 (位置排列数组, )
.如果真 (队列长度 < 1)
    返回 (假)
.如果真结束
需查找数据长度 = 位置排列数组 [队列长度] × 3
被查找数据长度 = 取字节集长度 (被查找的内容)
.如果真 (起点 > 被查找数据长度 - 需查找数据长度)
    返回 (假)
.如果真结束
.如果真 (终点 > 被查找数据长度)
    终点 = 被查找数据长度
.如果真结束
.变量循环首 (起点, 终点, 3, ia)
    .如果真 (被查找数据长度 - ia < 需查找数据长度)
        跳出循环 ()
    .如果真结束
    ' 调试输出 (被查找的内容 [ia], 被查找的内容 [ia + 1], 被查找的内容 [ia + 2])
    .如果真 (取绝对值 (被查找的内容 [ia] - 需查找的内容 [1]) < 偏移RGB [1] 且 取绝对值 (被查找的内容 [ia + 1] - 需查找的内容 [2]) < 偏移RGB [2] 且 取绝对值 (被查找的内容 [ia + 2] - 需查找的内容 [3]) < 偏移RGB [3])  ' 比对第一组数据
        通用逻辑 = 真
        .如果真 (队列长度 ≥ 2)  ' 比对后面数据
            .变量循环首 (2, 队列长度, 1, ib)
                tx = ia + 位置排列数组 [ib] × 3 - 3
                ty = ib × 3 - 2
                .如果 (取绝对值 (被查找的内容 [tx] - 需查找的内容 [ty]) < 偏移RGB [1] 且 取绝对值 (被查找的内容 [tx + 1] - 需查找的内容 [ty + 1]) < 偏移RGB [2] 且 取绝对值 (被查找的内容 [tx + 2] - 需查找的内容 [ty + 2]) < 偏移RGB [3])
                .否则
                    通用逻辑 = 假
                    跳出循环 ()
                .如果结束
            .变量循环尾 ()
        .如果真结束
        .如果真 (通用逻辑 = 真)
            加入成员 (返回位置数组, ia)
            .如果真 (全部匹配 = 假)
                返回 (真)
            .如果真结束
        .如果真结束
    .如果真结束
.变量循环尾 ()
.如果 (取数组下标 (返回位置数组, ) > 0)
    返回 (真)
.否则
    返回 (假)
.如果结束


就是太慢了,小弟新手莫笑.求优化求指点.



结帖率:100% (1/1)

签到天数: 6 天

发表于 2024-7-8 11:28:46 | 显示全部楼层   湖北省十堰市
感谢分享,支持开源。。
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)
发表于 2019-5-24 19:05:46 | 显示全部楼层   河南省郑州市
感谢分享,支持开源。。
回复 支持 反对

使用道具 举报

结帖率:100% (8/8)
发表于 2019-5-24 16:54:36 | 显示全部楼层   菲律宾
感谢楼主分享经验
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-5-23 18:34:16 | 显示全部楼层   广东省广州市

大神求转汇编
回复 支持 反对

使用道具 举报

发表于 2019-5-23 18:33:05 | 显示全部楼层   河南省周口市
先看一下再说
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:wp@125.la
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

快速回复 返回顶部 返回列表