开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

查看: 4603|回复: 48
打印 上一主题 下一主题
收起左侧

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

[复制链接]
结帖率:93% (254/273)
跳转到指定楼层
楼主
发表于 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, 下载次数: 60)
















点评

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

评分

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

查看全部评分


本帖被以下淘专辑推荐:

结帖率:75% (9/12)
沙发
发表于 2024-3-28 22:25:30 | 只看该作者   浙江省丽水市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

板凳
发表于 2024-3-28 23:29:03 | 只看该作者   贵州省黔南布依族苗族自治州
  
用作替换内容 = “ASDJ:::::|||||”
内容 = 子文本替换_汇编2 (用作替换内容, “:”, “::”, , )
内容 = 子文本替换_汇编2 (内容, “|”, “||”, , )


试试什么效果.
回复 支持 反对

使用道具 举报

结帖率:100% (3/3)

签到天数: 21 天

地板
发表于 2024-3-29 01:14:23 | 只看该作者   贵州省毕节市
汇编崩会不会是没有平栈导致的?
回复 支持 反对

使用道具 举报

结帖率:93% (254/273)

签到天数: 20 天

地下
 楼主| 发表于 2024-3-29 03:47:05 | 只看该作者   广西壮族自治区崇左市
本帖最后由 果心豆腐酱 于 2024-3-29 04:48 编辑
accet 发表于 2024-3-28 23:29
  
用作替换内容 = “ASDJ:::::|||||”
[/quote]
[img]https://pic.imgdb.cn/item/6605c9119f345e8d033ad81e.png[/img]
[e=3].版本 2
子程序名返回值类型公开备 注
子文本替换_汇编文本型 不可在多线程内使用,会闪退
参数名类 型参考可空数组备 注
欲被替换的文本文本型
欲被替换的子文本文本型
用作替换的子文本文本型
进行替换的起始位置整数型
替换进行的次数整数型
是否区分大小写逻辑型该参数无效,默认区分大小写。
变量名类 型静态数组备 注
内容文本型 
替换位置整数型 
a整数型 
替换长度整数型 
用作替换长度整数型 
局_欲被替换的文本文本型 
替换长度 = 取文本长度_汇编 (欲被替换的子文本)
用作替换长度 = 取文本长度_汇编 (用作替换的子文本)
局_欲被替换的文本 = 欲被替换的文本
计次循环首 (替换进行的次数, )
替换位置 = 寻找文本_ASM (局_欲被替换的文本, 欲被替换的子文本, 进行替换的起始位置, , )
判断 (替换位置 = -1)
跳出循环 ()
局_欲被替换的文本 = 文本替换_汇编 (局_欲被替换的文本, 替换位置, 替换长度, 用作替换的子文本)

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


回复 支持 反对

使用道具 举报

结帖率:93% (254/273)

签到天数: 20 天

6
 楼主| 发表于 2024-3-29 04:49:12 | 只看该作者   广西壮族自治区崇左市
accet 发表于 2024-3-28 23:29
[e=0].版本 2

用作替换内容 = “ASDJ:::::|||||”

回复 支持 反对

使用道具 举报

结帖率:93% (254/273)

签到天数: 20 天

7
 楼主| 发表于 2024-3-29 04:49:32 | 只看该作者   广西壮族自治区崇左市
accet 发表于 2024-3-28 23:29
[e=0].版本 2

用作替换内容 = “ASDJ:::::|||||”

回复 支持 反对

使用道具 举报

结帖率:93% (254/273)

签到天数: 20 天

8
 楼主| 发表于 2024-3-29 05:13:34 | 只看该作者   广西壮族自治区崇左市
笨来无一悟 发表于 2024-3-29 01:14
汇编崩会不会是没有平栈导致的?

不知道你说的啥,原因是什么我也不知道,我只知道,用作替换的内容,在窗口程序里长度超过32就会崩溃。在模块里直接崩溃。

汇编代码我不懂,也修复不了。
回复 支持 1 反对 0

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

9
发表于 2024-3-29 05:16:22 | 只看该作者   贵州省黔南布依族苗族自治州
笨来无一悟 发表于 2024-3-29 01:14
汇编崩会不会是没有平栈导致的?

是程序内存超过2G 爆了.
他那个 子文本替换_汇编2 永远在替换第一个; 所以越来越大..
回复 支持 1 反对 0

使用道具 举报

结帖率:100% (1/1)

签到天数: 2 天

10
发表于 2024-3-29 05:18:38 | 只看该作者   贵州省黔南布依族苗族自治州
本帖最后由 accet 于 2024-3-29 05:20 编辑

改了就行了.
有时候有些步骤是真不能省略.  不然鬼知道用户会输入什么.还有既然要搞得快. 再把 加法 那里 也改成汇编好了.
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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