开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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


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

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

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

[易语言纯源码] 汇编极速分割文本演示带源码无模块

[复制链接]
结帖率:100% (11/11)
跳转到指定楼层
楼主
发表于 2018-9-10 22:30:11 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式   陕西省渭南市
分享源码
界面截图:
是否带模块: 纯源码
备注说明: -
易语言的分割文本速度真的慢.偏偏论坛里经常有人在用这个功能.这几天基本都没抢回帖.一直在折腾这个了.
过程跳过,最后的结果是这样.不能变成一个很完整的模块功能,在使用上有一点点小限制.但我觉得还是有实用价值的.所以放上来测试一下.

附件里是例子,使用要注意的都有注释.这里也说一下.
易所有使用的变量都是要回收的.在结束的时间.所以定义数组时要进行预定义.我加的大.实际可以根据需要设置.每个成员占一个整数的位置.也就是4字节.怕麻烦的就设置大一些.关系不大.
第一句取数组成员数也是完成数组内存分配的.这个没办法去掉了.
过程很简单.给字节集内容.给数组.分隔符暂时没有考虑.如果功能真的实用了.再考虑.
使用字节集也是为了专门处理大文件.起码可以少转换一次.
最后献上不太长的代码..最后要说的是没有模块.源码是使用了汇编_取随机数做演示才用到了模块.

  
窗口程序集名保 留  保 留备 注
程序集1   
子程序名返回值类型公开备 注
_启动子程序整数型 本子程序在程序启动后最先执行
变量名类 型静态数组备 注
文本数组1文本型99999999牵扯内存释放,所以要预分配,只要大于你分割后的数组成员就行
文本内容字节集这里是要分割的文本字节集内容,这里将存在数组内容,数组只是一个指针集合
计数器整数型 
行数整数型 
时间1整数型 
取数组成员数 (文本数组1)  ' 程序结束时易会释放所有变量,需要这一句来给数组预申请内存空间
文本内容 = 读入文件 (“R:\Desktop\123.txt”){ 0 }
' 文本内容2 = 到文本 (文本内容)
如果真 (取字节集长度 (文本内容) < 4)
调试输出 (“文件为空”)

时间1 = 取启动时间 ()
汇编_分割文本 (文本内容, 文本数组1)
调试输出 (“分割用时: ”, 取启动时间 () - 时间1)
调试输出 (“共”, 取数组成员数 (文本数组1), “成员”)
计次循环首 (4, )
行数 = 汇编_取随机数 (1, 取数组成员数 (文本数组1))
调试输出 (行数, 文本数组1 [行数])
计次循环尾 ()
返回 (0)  ' 可以根据您的需要返回任意数值
子程序名返回值类型公开备 注
汇编_分割文本整数型 
参数名类 型参考可空数组备 注
参_文本内容字节集
参_文本数组文本型
置入代码 ({ 141, 85, 8, 139, 18, 139, 18, 139, 74, 4, 131, 194, 8, 141, 93, 12, 139, 27, 139, 27, 131, 195, 4, 184, 1, 0, 0, 0, 137, 3, 137, 83, 4, 138, 2, 60, 13, 117, 7, 49, 192, 136, 2, 66, 226, 243, 60, 10, 117, 19, 49, 192, 136, 2, 66, 139, 3, 64, 137, 3, 193, 224, 2, 1, 216, 137, 16, 226, 220, 66, 226, 217, 139, 3, 201, 194, 8, 0 })
返回 (0)


i支持库列表   支持库注释   
spec特殊功能支持库

汇编_分割文本.e

742.19 KB, 下载次数: 258, 下载积分: 精币 -2 枚

点评

63楼加入分隔符,带注释   陕西省渭南市  发表于 2018-9-29 14:19
新修改的版本在50楼了.加入单字节的分割.多字节又复杂又影响效率.就不加了吧.   陕西省渭南市  发表于 2018-9-23 17:21
没有分割符那是怎么分割的,换行符?   江西省萍乡市  发表于 2018-9-14 12:20

评分

参与人数 2好评 +2 精币 +6 收起 理由
Chlrun + 1 + 3 支持开源~!感谢分享
hellohexiang + 1 + 3 支持开源~!感谢分享

查看全部评分


本帖被以下淘专辑推荐:

结帖率:67% (2/3)
沙发
发表于 2018-9-10 23:20:39 | 只看该作者   海南省海口市
谢谢,收下了~
回复 支持 反对

使用道具 举报

结帖率:100% (34/34)

签到天数: 20 天

板凳
发表于 2018-9-11 00:30:25 | 只看该作者   浙江省衢州市
只能换行符?
回复 支持 反对

使用道具 举报

结帖率:0% (0/1)

签到天数: 23 天

地板
发表于 2018-9-11 02:22:04 | 只看该作者   福建省龙岩市

谢谢,收下了~.很强大
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 21 天

地下
 楼主| 发表于 2018-9-11 06:15:58 | 只看该作者   陕西省渭南市

先测试吧.其它的分隔符也可以.要另写代码.
如果分隔符太长.就会变慢不少的.
回复 支持 反对

使用道具 举报

结帖率:97% (31/32)

签到天数: 22 天

6
发表于 2018-9-11 06:53:57 | 只看该作者   福建省福州市
没能 正确取出数据 还是我用法错误!!
回复 支持 反对

使用道具 举报

结帖率:97% (31/32)

签到天数: 22 天

7
发表于 2018-9-11 07:05:31 | 只看该作者   福建省福州市
本帖最后由 cf2006a 于 2018-9-11 07:10 编辑

mov edx, dword [edx] mov edx, dword [edx]


mov ebx, dword [ebx]
mov ebx, dword [ebx]


请教下为什么要取两次一样的 值



loop Label2 看了下用了三个 循环 那它的结束条件是什么呢
回复 支持 反对

使用道具 举报

结帖率:100% (11/11)

签到天数: 21 天

8
 楼主| 发表于 2018-9-11 07:35:55 | 只看该作者   陕西省渭南市
cf2006a 发表于 2018-9-11 07:05
mov edx, dword [edx] mov edx, dword [edx]

数值是传址模式.参数也是传址.就加了两次
结束条件是字节集文本内容的长度.
所以你的例子里没有给文本内容加东西.是空的.因为这里的数据将来是直接给文本数组使用的.可以省掉易重新分配内存的过程.

点评

数组.打成数值了.   陕西省渭南市  发表于 2018-9-11 07:36
回复 支持 反对

使用道具 举报

结帖率:96% (85/89)

签到天数: 2 天

9
发表于 2018-9-11 09:02:24 | 只看该作者   安徽省合肥市
建议再加个参数  自定义分割的字符
回复 支持 反对

使用道具 举报

结帖率:100% (26/26)

签到天数: 7 天

10
发表于 2018-9-11 09:06:33 | 只看该作者   江苏省南通市
千万级别的 如果连续处理 好像容易崩溃 是不是内存没有释放结束?
回复 支持 反对

使用道具 举报

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

本版积分规则 致发广告者

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

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

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