精易论坛

标题: 汇编版 分割文本到数组 带指定分割符 修复 删前四个问题 [打印本页]

作者: cf2006a    时间: 2018-9-14 20:05
标题: 汇编版 分割文本到数组 带指定分割符 修复 删前四个问题
  
子程序名返回值类型公开备 注
汇编_分割文本整数型 返回分割总个数
参数名类 型参考可空数组备 注
参_文本内容文本型
参_文本数组文本型
参_分隔符文本型
置入代码 ({ 139, 85, 8, 139, 18, 139, 93, 12, 139, 27, 131, 195, 4, 199, 3, 1, 0, 0, 0, 137, 83, 4, 139, 77, 16, 139, 9, 138, 41, 138, 10, 128, 249, 0, 116, 25, 56, 233, 117, 18, 56, 106, 1, 116, 13, 198, 2, 0, 66, 255, 3, 139, 3, 137, 20, 131, 235, 227, 66, 235, 224, 201, 194, 12, 0 })
返回 (0)


作者: う网淅乄    时间: 2018-9-14 20:23

作者: 衰而不爱    时间: 2018-9-14 20:26
待分割文本过大,会直接崩溃、、、
作者: 商亨人和    时间: 2018-9-15 17:11
支持开源,666
作者: cqfans    时间: 2018-9-21 02:38
D-owl 发表于 2018-9-14 20:26
待分割文本过大,会直接崩溃、、、

你用多大的文本测试的,我还没试过
作者: cqfans    时间: 2018-9-21 03:04
  
子程序名返回值类型公开备 注
汇编_分割文本整数型 返回分割总个数
参数名类 型参考可空数组备 注
参_文本内容文本型
参_文本数组文本型
参_分隔符文本型
置入代码 ({ 139, 85, 8, 139, 18, 139, 93, 12, 139, 27, 131, 195, 4, 199, 3, 1, 0, 0, 0, 137, 83, 4, 139, 77, 16, 139, 9, 138, 41, 138, 10, 128, 249, 0, 116, 25, 56, 233, 117, 18, 56, 106, 1, 116, 13, 198, 2, 0, 66, 255, 3, 139, 3, 137, 20, 131, 235, 227, 66, 235, 224, 201, 194, 12, 0 })
返回 (0)
  
子程序名返回值类型公开备 注
汇编分割测试  
变量名类 型静态数组备 注
文本文本型 
i整数型 
a整数型 
文本数组文本型0
t整数型 
调试输出 (“开始准备待分割文本”, 取现行时间 ())
文本 = “1”
a = 100000
计次循环首 (a, i)
文本 = 文本 + “\”到文本 (i)
计次循环尾 ()
调试输出 (取文本长度 (文本) ÷ 1024, “kb”, 取现行时间 ())
清除数组 (文本数组)
调试输出 (“1.开始分割文本”, 取现行时间 ())
t = 取启动时间 ()
文本数组 = 分割文本 (文本, “\”, )
调试输出 (“1.耗时:”到文本 (取启动时间 () - t), 取现行时间 ())
清除数组 (文本数组)
调试输出 (“2.开始分割文本”, 取现行时间 ())
t = 取启动时间 ()
汇编_分割文本 (文本, 文本数组, “\”)
调试输出 (“2.耗时:”到文本 (取启动时间 () - t), 取现行时间 ())


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

测试,结果
[attach]806738[/attach]

作者: cqfans    时间: 2018-9-21 03:05
  
子程序名返回值类型公开备 注
汇编_分割文本整数型 返回分割总个数
参数名类 型参考可空数组备 注
参_文本内容文本型
参_文本数组文本型
参_分隔符文本型
置入代码 ({ 139, 85, 8, 139, 18, 139, 93, 12, 139, 27, 131, 195, 4, 199, 3, 1, 0, 0, 0, 137, 83, 4, 139, 77, 16, 139, 9, 138, 41, 138, 10, 128, 249, 0, 116, 25, 56, 233, 117, 18, 56, 106, 1, 116, 13, 198, 2, 0, 66, 255, 3, 139, 3, 137, 20, 131, 235, 227, 66, 235, 224, 201, 194, 12, 0 })
返回 (0)
  
子程序名返回值类型公开备 注
汇编分割测试  
变量名类 型静态数组备 注
文本文本型 
i整数型 
a整数型 
文本数组文本型0
t整数型 
调试输出 (“开始准备待分割文本”, 取现行时间 ())
文本 = “1”
a = 100000
计次循环首 (a, i)
文本 = 文本 + “\”到文本 (i)
计次循环尾 ()
调试输出 (取文本长度 (文本) ÷ 1024, “kb”, 取现行时间 ())
清除数组 (文本数组)
调试输出 (“1.开始分割文本”, 取现行时间 ())
t = 取启动时间 ()
文本数组 = 分割文本 (文本, “\”, )
调试输出 (“1.耗时:”到文本 (取启动时间 () - t), 取现行时间 ())
清除数组 (文本数组)
调试输出 (“2.开始分割文本”, 取现行时间 ())
t = 取启动时间 ()
汇编_分割文本 (文本, 文本数组, “\”)
调试输出 (“2.耗时:”到文本 (取启动时间 () - t), 取现行时间 ())


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

测试,结果


作者: 衰而不爱    时间: 2018-9-21 10:19
cqfans 发表于 2018-9-21 02:38
你用多大的文本测试的,我还没试过

65M的文本。
作者: cf2006a    时间: 2018-9-21 13:52
D-owl 发表于 2018-9-14 20:26
待分割文本过大,会直接崩溃、、、

这么大的文本没试过 不过我这边跑了好多次 10m以内的都没出错

你那么大文本 看下数组有没有越界了
作者: cf2006a    时间: 2018-9-21 14:05
cqfans 发表于 2018-9-21 02:38
你用多大的文本测试的,我还没试过



每个常量都是满的3万字节 这么多个 用换行分割0毫秒 也没崩溃 15万行 也就是说分割出15万个数组都没崩 你们所谓的大文件那有多大啊  

作者: cqfans    时间: 2018-9-21 14:18
cf2006a 发表于 2018-9-21 14:05
每个常量都是满的3万字节 这么多个 用换行分割0毫秒 也没崩溃 15万行 也就是说分割出15万个数组都没 ...

测试方式,不一样,我是不断用数字+分割文本拼接,拼接了十万次,用易语言自带的分割文本,3秒多,用大佬你的汇编代码分割,直接崩了,我也很纳闷呐,你可以看看我贴出来的代码,逻辑应该没问题,可就是崩了,虽然我不懂汇编,但是,这代码肯定是有bug的
作者: 衰而不爱    时间: 2018-9-21 14:20
cf2006a 发表于 2018-9-21 13:52
这么大的文本没试过 不过我这边跑了好多次 10m以内的都没出错

你那么大文本 看下数组有没有越界了

没有的,都是很正常的,文本大了直接秒。
作者: cf2006a    时间: 2018-9-21 15:24
本帖最后由 cf2006a 于 2018-9-21 15:32 编辑
cqfans 发表于 2018-9-21 03:05
  
子程序名返回值类型公开备 注
汇编_分割文本整数型 返回分割总个数
[/quote]
你数组 下标设置0  当然失败了 我这个要预设 数组下标的你填99999999然后跑  数组√静态
[e=0].版本 2
子程序名返回值类型公开备 注
__启动窗口_创建完毕  
汇编分割测试 ()
子程序名返回值类型公开备 注
汇编分割测试  
变量名类 型静态数组备 注
文本数组文本型10000000
文本文本型 
i整数型 
a整数型 
t整数型 
取数组成员数 (文本数组)
调试输出 (“开始准备待分割文本”, 取现行时间 ())
文本 = “1”
a = 100000
计次循环首 (a, i)
文本 = 文本 + “\”到文本 (i)
计次循环尾 ()
调试输出 (取文本长度 (文本) ÷ 1024, “kb”, 取现行时间 ())
' 清除数组 (文本数组)
' 调试输出 (“1.开始分割文本”, 取现行时间 ())
' t = 取启动时间 ()
' 文本数组 = 分割文本 (文本, “\”, )
' 调试输出 (“1.耗时:” + 到文本 (取启动时间 () - t), 取现行时间 ())
' 清除数组 (文本数组)
' 调试输出 (“2.开始分割文本”, 取现行时间 ())
t = 取启动时间 ()
汇编_分割文本 (文本, 文本数组, “\”)
调试输出 (“2.耗时:”到文本 (取启动时间 () - t), 取现行时间 ())
子程序名返回值类型公开备 注
汇编_分割文本整数型 返回分割总个数
参数名类 型参考可空数组备 注
参_文本内容文本型
参_文本数组文本型
参_分隔符文本型
置入代码 ({ 139, 85, 8, 139, 18, 139, 93, 12, 139, 27, 131, 195, 4, 199, 3, 1, 0, 0, 0, 137, 83, 4, 139, 77, 16, 139, 9, 138, 41, 138, 10, 128, 249, 0, 116, 25, 56, 233, 117, 18, 56, 106, 1, 116, 13, 198, 2, 0, 66, 255, 3, 139, 3, 137, 20, 131, 235, 227, 66, 235, 224, 201, 194, 12, 0 })
返回 (0)


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


这样可以跑不过关闭调试会出错

作者: cf2006a    时间: 2018-9-21 20:18
cqfans 发表于 2018-9-21 14:18
测试方式,不一样,我是不断用数字+分割文本拼接,拼接了十万次,用易语言自带的分割文本,3秒多,用大佬 ...

找到问题了是 截断文本 导致不能释放的 原因你把 要匹配的文本 写到汇编里再去分割就什么问题都没有了
作者: zg3280    时间: 2019-4-3 23:15
导入的数组,一旦被重定义,程序就会自己关闭窗口退出。
作者: 1515304824    时间: 2019-4-6 13:34
6666666666
作者: vSpear    时间: 2021-2-25 13:42


重复调用 好像会出问题


                                        藏起来的小尾巴,不让你看!  




欢迎光临 精易论坛 (https://125.confly.eu.org/) Powered by Discuz! X3.4