开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

楼主: 笨来无一悟
收起左侧

[易语言纯源码] 求求了能不能不要老是用正则文本删数字

[复制链接]
结帖率:100% (2/2)
 楼主| 发表于 2024-6-25 17:33:18 | 显示全部楼层   贵州省毕节市
福仔 发表于 2024-6-25 17:20
这个普通版的也比快速文本要快, 替换文本一次就需要循环整个文本, 你替换10次, 至少循环10次
先不说内部 ...

望尘莫及
怎么实现的.jpg
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 17 天

发表于 2024-6-25 17:20:28 | 显示全部楼层   广西壮族自治区崇左市
福仔 发表于 2024-6-25 17:09
我也写了一个, 目测应该是比快速文本要快
[e=1]
.版本 2

这个普通版的也比快速文本要快, 替换文本一次就需要循环整个文本, 你替换10次, 至少循环10次
先不说内部会不会有分配内存的操作, 光是循环你都比我这个处理方式要多了9倍
我这个就循环一次, 算是循环两次吧, 取文本长度也循环了一次
而且替换的操作可是要比较复杂的, 先是要查找文本, 就算是使用了什么算法, 替换的时间复杂度也达不到O(n)
你可以找个大文本测试一下, 我感觉非汇编版的能比你快速文本替换的方式快个5倍以上

点评

转成汇编代码看了会儿勉强看懂了 开辟一个和原文一样大小的内存空间 循环一遍原文 检查不是数字就写到新空间 学习了...   贵州省毕节市  发表于 2024-6-25 17:52
回复 支持 反对

使用道具 举报

结帖率:100% (9/9)

签到天数: 17 天

发表于 2024-6-25 17:09:46 | 显示全部楼层   广西壮族自治区崇左市
我也写了一个, 目测应该是比快速文本要快
  
窗口程序集名保 留  保 留备 注
窗口程序集_启动窗口   
子程序名返回值类型公开备 注
_按钮1_被单击  
变量名类 型静态数组备 注
原文文本型 
汇编版结果文本型 
普通版结果文本型 
原文 = “测试123abc”
汇编版结果 = 文本删数字_汇编版 (原文)
普通版结果 = 文本删数字 (原文)
输出调试文本 (汇编版结果, 普通版结果)
子程序名返回值类型公开备 注
文本删数字_汇编版文本型 
参数名类 型参考可空数组备 注
原文文本型
变量名类 型静态数组备 注
文本长度整数型 
返回文本文本型 
文本长度 = 取文本长度 (原文)
返回文本 = 取空白文本 (文本长度)
_文本删数字 (取指针_文本型 (原文), 文本长度, 取指针_文本型 (返回文本))
返回 (返回文本)
子程序名返回值类型公开备 注
文本删数字文本型 
参数名类 型参考可空数组备 注
原文文本型
变量名类 型静态数组备 注
文本长度整数型 
返回文本文本型 
原文本指针整数型 
缓冲区指针整数型 
ch字节型 
写入长度整数型 
文本长度 = 取文本长度 (原文)
如果真 (文本长度 = 0)
返回 (“”)

返回文本 = 取空白文本 (文本长度)
原文本指针 = 取指针_文本型 (原文)
缓冲区指针 = 取指针_文本型 (返回文本)
循环判断首 ()
ch = __get_byte (原文本指针, 0)
原文本指针 = 原文本指针 + 1
如果真 (ch < 48 ch > 57)  ' 48='0', 57='9'
__set_byte (缓冲区指针, 写入长度, ch)
写入长度 = 写入长度 + 1

循环判断尾 (ch ≠ 0)
__set_byte (缓冲区指针, 写入长度, 0)
返回 (返回文本)
子程序名返回值类型公开备 注
_文本删数字整数型 
参数名类 型参考可空数组备 注
原文整数型
尺寸整数型
缓冲区整数型
置入代码 ({ 139, 85, 16, 133, 210, 116, 41, 131, 125, 12, 0, 124, 35, 86, 139, 117, 8, 51, 201, 235, 13, 70, 60, 48, 124, 4, 60, 57, 126, 4, 136, 4, 17, 65, 138, 6, 132, 192, 117, 237, 136, 4, 17, 139, 193, 94, 235, 2, 51, 192, 93, 194, 12, 0 })
返回 (0)
子程序名返回值类型公开备 注
取指针_文本型整数型 取到的是变量在堆中的地址,和 取变量数据地址() 一样
参数名类 型参考可空数组备 注
文本文本型
置入代码 ({ 139, 69, 8, 139, 0, 201, 194, 4, 0 })
返回 (0)
子程序名返回值类型公开备 注
__set_byte整数型 请确保指针的合法性,写到内存
参数名类 型参考可空数组备 注
lpAddr整数型内存地址
offset整数型偏移
value字节型写入值
置入代码 ({ 139, 93, 8, 139, 77, 12, 139, 4, 11, 138, 85, 16, 136, 20, 11, 201, 194, 12, 0 })
' mov ebx,[ebp+8]
' mov ecx,[ebp+12]
' mov eax,[ecx+ebx]
' mov dl,[ebp+16]
' mov [ecx+ebx],dl
' leave
' ret 12
返回 (0)
子程序名返回值类型公开备 注
__get_byte字节型 请确保指针的合法性,读取内存
参数名类 型参考可空数组备 注
lpAddr整数型内存地址
offset整数型偏移
置入代码 ({ 139, 69, 8, 139, 93, 12, 139, 4, 24, 201, 194, 8, 0 })
' mov eax,[ebp+8]
' mov ebx,[ebp+12]
' mov eax,[eax+ebx]
' leave
' ret 8
返回 (0)


文本删数字.e (6.63 KB, 下载次数: 3)

评分

参与人数 2好评 +2 精币 +4 收起 理由
光影魔术 + 1 + 1 新技能已get√
笨来无一悟 + 1 + 3 汇编 目前只勉强学会了一点点 数值计算的 文本好难 功德无量.

查看全部评分

回复 支持 反对

使用道具 举报

签到天数: 4 天

发表于 2024-6-25 15:26:22 | 显示全部楼层   广东省惠州市
谢谢大佬,很好很实用的教程。

点评

更正确的姿势请诸位查看第10楼 并且高呼 功德无量   贵州省毕节市  发表于 2024-6-25 17:41
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 22 天

发表于 2024-6-25 15:23:17 | 显示全部楼层   广东省惠州市
谢谢开源,精易有你更精彩
回复 支持 反对

使用道具 举报

结帖率:0% (0/2)

签到天数: 19 天

发表于 2024-6-25 14:37:58 | 显示全部楼层   广西壮族自治区玉林市
支持开源~!感谢分享
回复 支持 反对

使用道具 举报

结帖率:100% (6/6)

签到天数: 20 天

发表于 2024-6-25 14:00:03 | 显示全部楼层   新疆维吾尔自治区昌吉回族自治州
用得到。支持大佬分享
回复 支持 反对

使用道具 举报

签到天数: 22 天

发表于 2024-6-25 13:56:17 | 显示全部楼层   广东省揭阳市
新技能已get√
回复 支持 反对

使用道具 举报

结帖率:100% (45/45)

签到天数: 21 天

发表于 2024-6-25 13:04:46 | 显示全部楼层   新疆维吾尔自治区乌鲁木齐市
快速文本。。。好!!
回复 支持 反对

使用道具 举报

结帖率:100% (2/2)

签到天数: 9 天

 楼主| 发表于 2024-6-25 12:58:21 | 显示全部楼层   贵州省毕节市
本帖最后由 笨来无一悟 于 2024-6-25 13:02 编辑

吃饭去 回头再研究研究

点评

看好你哦!   重庆市重庆市  发表于 2024-6-25 14:32
发现一个问题 倒找文本 的 速度 好 坑爹...   贵州省毕节市  发表于 2024-6-25 13:04
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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