开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 1196|回复: 43
收起左侧

[易源码分享] 5种子文本替换。

[复制链接]
结帖率:93% (246/265)
发表于 2024-3-28 18:50:46 | 显示全部楼层 |阅读模式   广西壮族自治区崇左市
分享源码
界面截图: -
是否带模块: 调用了模块
备注说明: -
本帖最后由 果心豆腐酱 于 2024-4-2 17:10 编辑


在不使用多线程的情况下,第一种汇编,使用寻找文本_汇编的方式,进行遍历匹配替换,最快。
第二种纯汇编代码替换就慢了些许
汇编很快,但是不能在线程里和使用,会闪退。

能在多线程里使用的三种方式里,如果文本长度在500以内,长度越小核心库的子文本替换越快。



如果在多线程里使用,可以考虑提取文本内容的长度,来判断使用子文本替换或者快速文本对象替换。

2024-03-29新编辑,在模块里用线程,汇编直接崩溃。如果在窗口程序,线程使用灰白你,用作替换的文本长度超过32,就会崩溃,小于32,在线程里使用正常。
原因我也不知道,解决方法我也不知道,因为汇编不是我写的2024-04-02编辑,修改子文本替换_汇编的替换次数判断逻辑(),原代码需要提供替换次数。
AsmMoudle.e (1.22 MB, 下载次数: 8, 售价: 2 枚 精币)

点评

写错了,是 "子文本替换_汇编2" 测试都正常   内蒙古自治区包头市  发表于 2024-3-31 17:00
经过测试, "子文本替换_汇编" 多线程下正常,替换字符超过32个也不会奔溃..   内蒙古自治区包头市  发表于 2024-3-31 16:59

评分

参与人数 5好评 +1 精币 +7 收起 理由
易语言资源网 + 1 + 3 开源精神必须支持~
wa690602724 + 1 感谢分享,很给力!~
光影魔术 + 1 支持开源~!感谢分享
z3201 + 1 多线程不是这样测试的....你这样测试系统的也无效
財財 + 1 感谢分享,很给力!~

查看全部评分


结帖率:100% (20/20)

签到天数: 28 天

发表于 14 小时前 | 显示全部楼层   河南省濮阳市
开源精神必须支持~
回复 支持 反对

使用道具 举报

结帖率:85% (76/89)

签到天数: 28 天

发表于 15 小时前 | 显示全部楼层   浙江省宁波市
SSS777 发表于 2024-4-28 02:05
取文本长度 >550,用 子文本替换_快速_文本(),速度很快的!
不过:
取文本长度< 33 ,应该是用核心库的 ...

[JavaScript] 纯文本查看 复制代码
.版本 2

.判断开始 (取文本长度(欲被替换的文本) < 33)
    子文本替换_汇编 (欲被替换的文本, 欲被替换的子文本, 用作替换的子文本, 进行替换的起始位置, 替换进行的次数, 是否区分大小写)

.判断 (取文本长度(欲被替换的文本) > 550)
    结果 = 子文本替换_快速_文本 (欲被替换的文本, 欲被替换的子文本, 用作替换的子文本, 进行替换的起始位置, 替换进行的次数, 是否区分大小写)
.默认
    结果 = 子文本替换 (欲被替换的文本, 欲被替换的子文本, 用作替换的子文本, 进行替换的起始位置, 替换进行的次数, 是否区分大小写)
.判断结束

回复 支持 反对

使用道具 举报

结帖率:85% (76/89)

签到天数: 28 天

发表于 15 小时前 | 显示全部楼层   浙江省宁波市
取文本长度 >550,用 子文本替换_快速_文本(),速度很快的!
不过:
取文本长度< 33 ,应该是用核心库的 子文本替换()还是 子文本替换_汇编()?

回复 支持 反对

使用道具 举报

结帖率:85% (76/89)

签到天数: 28 天

发表于 16 小时前 | 显示全部楼层   浙江省宁波市

没找到你截图中的 子文本替换_Airuan()
能方便提供吗?
回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-4-19 16:16:08 | 显示全部楼层   安徽省合肥市
6666666666666666666666
回复 支持 反对

使用道具 举报

签到天数: 5 天

发表于 2024-4-18 03:48:32 | 显示全部楼层   山东省潍坊市
虚函数HOOK
回复 支持 反对

使用道具 举报

结帖率:60% (15/25)

签到天数: 25 天

发表于 2024-4-7 19:44:23 | 显示全部楼层   江苏省苏州市
子文本替换_汇编2 也会崩溃
回复 支持 反对

使用道具 举报

结帖率:93% (246/265)

签到天数: 28 天

 楼主| 发表于 2024-4-2 17:07:55 | 显示全部楼层   广西壮族自治区崇左市
  
子程序名返回值类型公开备 注
子文本替换_汇编文本型 不可在多线程内使用,会闪退
参数名类 型参考可空数组备 注
欲被替换的文本文本型
欲被替换的子文本文本型
用作替换的子文本文本型
进行替换的起始位置整数型
替换进行的次数整数型
是否区分大小写逻辑型该参数无效,默认区分大小写。
变量名类 型静态数组备 注
内容文本型 
替换位置整数型 
a整数型 
替换长度整数型 
用作替换长度整数型 
局_欲被替换的文本文本型 
b整数型 
逻辑型 
替换长度 = 取文本长度_汇编 (欲被替换的子文本)
用作替换长度 = 取文本长度_汇编 (用作替换的子文本)
局_欲被替换的文本 = 欲被替换的文本
判断 (是否为空 (替换进行的次数))
空 = 真


判断循环首 (a = 0)
判断 (替换进行的次数 ≤ b 空 = )
跳出循环 ()


替换位置 = 寻找文本_ASM (局_欲被替换的文本, 欲被替换的子文本, 进行替换的起始位置, , )判断 (替换位置 = -1)
跳出循环 ()
局_欲被替换的文本 = 文本替换_汇编 (局_欲被替换的文本, 替换位置, 替换长度, 用作替换的子文本)

进行替换的起始位置 = 替换位置 + 用作替换长度
b = b + 1
判断循环尾 ()
返回 (局_欲被替换的文本)

回复 支持 反对

使用道具 举报

签到天数: 2 天

发表于 2024-4-2 12:46:13 | 显示全部楼层   广西壮族自治区南宁市
QQ截图20240402124521.jpg bug
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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