|

本帖最后由 dangerace 于 2021-5-15 19:24 编辑
“文本_取指定文件文本行1”的原命令,由汇编大神 @jr21066 分享,在此先表示感谢!
在运用此命令过程中,发现可以做一些改进和完善:
从截图可以看到,相比原命令,效率略有提高,并且也可以应对更加复杂的换行控制符情况。望精易官方采纳。
改进后的源码见下:
|
laolu_文本_取指定文件文本行 | 文本型 | | |
参_文件路径 | 文本型 | | | | 参_行号 | 整数型 | | | | 参_换行控制符 | 字节集 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_行开始 | 整数型 | | | 局_行结束 | 整数型 | | | 局_快速字节集 | 快速字节集对象 | | |
如果真 (参_行号 = 0 ) 返回 (“”)局_快速字节集.从文件读 (参_文件路径) 计次循环首 (参_行号 - 1, ) 局_行开始 = 局_快速字节集. 寻找字节集 (参_换行控制符, 局_行开始 + 1 ) 如果 (局_行开始 = -1 ) 返回 (“”)  局_行开始 = 局_行开始 + 选择 (参_换行控制符 = { 13, 10 }, 2, 1 )  计次循环尾 () 如果真 (局_行开始 = 0 ) 局_行开始 = 1 局_行结束 = 局_快速字节集.寻找字节集 (参_换行控制符, 局_行开始 + 1) 如果 (局_行结束 = -1 ) 如果 (局_快速字节集. 取长度 () > 局_行开始 )  局_行结束 = 局_快速字节集. 取长度 () + 1  返回 (“”)   局_行结束 = 局_行结束 + 选择 (参_换行控制符 = { 13, 10 }, 2, 1 )返回 (到文本 (局_快速字节集.取字节集 (局_行开始, 局_行结束 - 局_行开始)))
@shitou 提醒精易官方可能不允许在提交的代码总使用除官方核心库之外的其他支持库?
那我提交个核心库版本,当然,因为没有使用快速字节集对象了,所以效率和原版一样,只是能应对多种换行控制符的情况而已。
|
laolu_文本_取指定文件文本行 | 文本型 | | |
参_文件路径 | 文本型 | | | | 参_行号 | 整数型 | | | | 参_换行控制符 | 字节集 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_内容 | 字节集 | | | 局_行开始 | 整数型 | | | 局_行结束 | 整数型 | | |
如果真 (参_行号 = 0 ) 返回 (“”)局_内容 = 读入文件 (参_文件路径) 计次循环首 (参_行号 - 1, ) 局_行开始 = 寻找字节集 (局_内容, 参_换行控制符, 局_行开始 + 1 ) 如果 (局_行开始 = -1 ) 返回 (“”)  局_行开始 = 局_行开始 + 选择 (参_换行控制符 = { 13, 10 }, 2, 1 )  计次循环尾 () 如果真 (局_行开始 = 0 ) 局_行开始 = 1 局_行结束 = 寻找字节集 (局_内容, 参_换行控制符, 局_行开始 + 1) 如果 (局_行结束 = -1 ) 如果 (取字节集长度 (局_内容 ) > 局_行开始 )  局_行结束 = 取字节集长度 (局_内容 ) + 1  返回 (“”)   局_行结束 = 局_行结束 + 选择 (参_换行控制符 = { 13, 10 }, 2, 1 )返回 (到文本 (取字节集中间 (局_内容, 局_行开始, 局_行结束 - 局_行开始)))
|
评分
-
查看全部评分
|