精易论坛

标题: 精易模块中的“文本_折行”命令对比 [打印本页]

作者: kingtt    时间: 2022-8-1 16:49
标题: 精易模块中的“文本_折行”命令对比
今天要用到“文本_折行”命令,用的是精易v10.3.0里的命令,差点把自己折腾死,折行字符数为2或3直接卡死,很少能对上字数,干脆自己写一个对比
文本折行对比.e (927.13 KB, 下载次数: 15)




补充内容 (2022-8-9 15:21):
发现有BUG,大家不要下载了,现已重新编写,不知道要不要上传
作者: 30345    时间: 2022-8-1 17:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: yzl666    时间: 2022-8-1 17:36
这个是干什么用的

作者: sangco    时间: 2022-8-1 18:38
...把文字转数组, 然后X个输一个换行符不就行了麻
作者: 不苦小和尚    时间: 2022-8-1 18:50
没用过这个,不至于这么慢吧,模块是最新的吗
作者: 不苦小和尚    时间: 2022-8-1 19:42
修改了一下,你试下
  
子程序名返回值类型公开备 注
文本_折行文本型 把一段长文本按你指定的字数分行
参数名类 型参考可空数组备 注
要处理的文本文本型
每行字数整数型半角字数,如果为空,将不进行分行操作,直接返回文本内容,如果包含文本或全角字符,则需要把每行字数至少设置为2
是否强行分行逻辑型为真则强行按设定长度分行。为假则保留连续半角数字或字母为一行。默认为假。
是否全角逻辑型是否将半角转换为全角,如果为空即不转换
首空字节数整数型在每行前面加入空格,如果为空,为0,即不加空格
变量名类 型静态数组备 注
操作文本文本型 
开始位置整数型 
读取长度整数型 
开始计算半角逻辑型 
半角位置整数型 
结果文本文本型 
如果真 (是否为空 (每行字数))
返回 (要处理的文本)
如果真 (是否为空 (是否强行分行))
是否强行分行 = 假
如果真 (是否全角 = )
要处理的文本 = 子文本替换 (要处理的文本, “...”, “…”, 1, , )
要处理的文本 = 子文本替换 (要处理的文本, “->”, “→”, 1, , )
要处理的文本 = 子文本替换 (要处理的文本, “<-”, “←”, 1, , )
要处理的文本 = 子文本替换 (要处理的文本, “--”, “—”, 1, , )
要处理的文本 = 到全角 (要处理的文本)
如果真 (首空字节数 ≥ 1)
要处理的文本 = 取空白文本 (首空字节数) + 要处理的文本
要处理的文本 = 子文本替换 (要处理的文本, #换行符, #换行符取空白文本 (首空字节数), 1, , )
操作文本 = 要处理的文本
判断循环首 (取文本长度 (操作文本) > 每行字数)
判断循环首 (读取长度 < 每行字数)
' 首先这里存在2个情况,一个是如果为全角或汉字。则他们1位是2个长度,直接取是取不出来的。
如果 (取代码 (操作文本, 读取长度 + 1) ≥ 127 取代码 (操作文本, 读取长度 + 1) < 0)
' 如果不是半角的话。则需要把读取长度增加到2
半角位置 = 0
开始计算半角 = 假
如果真 (读取长度 = 每行字数 - 1)
输出调试文本 (“文本_折行 - 注意:检测到文本中包含中文或全角字符,需要把每行字数至少设置为2.”)
' 返回 (“”)
跳出循环 ()
读取长度 = 读取长度 + 2
判断 (取文本中间 (操作文本, 读取长度 + 1, 1)“ ”)
读取长度 = 读取长度 + 1
半角位置 = 0
开始计算半角 = 假
判断 (取文本中间 (操作文本, 读取长度 + 1, 2)#换行符 )
读取长度 = 读取长度 + 2
跳出循环 ()
如果真 (开始计算半角 = )
半角位置 = 读取长度
开始计算半角 = 真
读取长度 = 读取长度 + 1


判断循环尾 ()
如果真 (读取长度 ≥ 每行字数)
如果 (是否强行分行 = )
读取长度 = 选择 (半角位置 = 0, 每行字数, 选择 (取代码 (操作文本, 每行字数 + 1) ≥ 127 取代码 (操作文本, 每行字数 + 1) < 0, 每行字数, 半角位置))
开始计算半角 = 假
半角位置 = 0
读取长度 = 每行字数

如果真 (是否强行分行 = )
如果 (取文本中间 (操作文本, 读取长度 - 1, 2)“《” 取文本中间 (操作文本, 读取长度 - 1, 2)“(” 取文本中间 (操作文本, 读取长度 - 1, 2)#左引号 取文本中间 (操作文本, 读取长度 - 1, 2)“〈” 取文本中间 (操作文本, 读取长度 - 11, 2)“‘”)
读取长度 = 读取长度 - 2
如果真 (取文本中间 (操作文本, 读取长度, 2)“》” 取文本中间 (操作文本, 读取长度, 2)“)” 取文本中间 (操作文本, 读取长度, 2)#右引号 取文本中间 (操作文本, 读取长度, 2)“〉” 取文本中间 (操作文本, 读取长度, 2)“,” 取文本中间 (操作文本, 读取长度, 2)“。” 取文本中间 (操作文本, 读取长度, 2)“?” 取文本中间 (操作文本, 读取长度, 2)“:” 取文本中间 (操作文本, 读取长度, 2)“’” 取文本中间 (操作文本, 读取长度, 2)“;” 取文本中间 (操作文本, 读取长度, 2)“、”)
调试输出 (取代码 (操作文本, 读取长度))
如果 (取代码 (操作文本, 读取长度) ≥ 127 取代码 (操作文本, 读取长度) < 0)
读取长度 = 读取长度 - 2
读取长度 = 读取长度 - 1



如果 (取文本中间 (操作文本, 读取长度 - 1, 2)#换行符 )
结果文本 = 结果文本 + 取文本左边 (操作文本, 读取长度)
结果文本 = 结果文本 + 取文本左边 (操作文本, 读取长度)#换行符
操作文本 = 取文本右边 (操作文本, 取文本长度 (操作文本) - 读取长度)
读取长度 = 0
判断循环尾 ()
结果文本 = 结果文本 + 操作文本
返回 (结果文本)


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


作者: kingtt    时间: 2022-8-1 20:03
不苦小和尚 发表于 2022-8-1 19:42
修改了一下,你试下
[e=2].版本 2
.支持库 spec

请注意审题,我不是来求源码的,我自己编了一个简短的代码,另:就折个行而已,你的代码这么长也不嫌太麻烦吗
作者: 不苦小和尚    时间: 2022-8-1 20:53
kingtt 发表于 2022-8-1 20:03
请注意审题,我不是来求源码的,我自己编了一个简短的代码,另:就折个行而已,你的代码这么长也不嫌太麻 ...

就是精易模块修复的
作者: 夜华    时间: 2022-8-1 22:15
我当初也是自己写了一个方便,直接几条命令就行 但是我是针对字母数字折合
作者: 灵感吖    时间: 2022-8-2 10:09
优秀,感谢分享。
作者: 噢噢    时间: 2022-8-2 16:02
支持开源~!感谢分享
作者: 亿万    时间: 2022-8-2 22:34
支持                           
作者: 59hdvj    时间: 2022-8-3 19:46
支持一下
作者: 学习进步    时间: 2022-8-4 04:11
离谱的bug,模块整理更新的确辛苦,但功能多少也测试下再收进去。。
作者: ttggnn    时间: 2022-8-4 19:49
感谢分享
作者: npcwu    时间: 2022-8-6 09:36
学些了11111111111111
作者: zichang678    时间: 2022-12-19 12:38
66666666666





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