虽然之前有大佬们已经发过了,但是看评论有反应说半角全角不行,所以我自己又重新写了一个,无视全角半角自动折行换行,原文有换行的也会自动换行,就是增加了一个判断全角和半角的,Unicode这个肯定是没有的,毕竟原生的易不支持那玩意,因为这个功能没什么技术含量,作用也不大,一般用在需要强制文本对齐长度的地方,例如带的LICENSE.txt之类的(但这个没有单词对齐功能,所以有时候你会看到一个单词被强制断行了),所以直接粘贴源码代码了,截图中的每行前面自动加符号的,各位猜猜用什么命令可以实现!
|
isChineseChar | 逻辑型 | | |
highByte | 字节型 | | | | 返回 (highByte ≥ 129 且 highByte ≤ 254 )|
str_wrap | 文本型 | | |
text | 文本型 | | | | lineLength | 整数型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | buf | 字节集 | | | wrappedText | 字节集 | | | currentLineLength | 整数型 | | | charWidth | 整数型 | | | N | 整数型 | | | i | 整数型 | | | newLine | 逻辑型 | | |
lineLength = 选择 (是否为空 (lineLength ), 50, 选择 (lineLength < 1, 1, lineLength )) buf = 到字节集 (text ) 判断循环首 (i < 取字节集长度 (buf ))  i = i + 1  newLine = 假  判断 (isChineseChar (buf [i ]))   如果真 (i < 取字节集长度 (buf ))    i = i + 1  charWidth = 2 判断 (buf [i ] = 13 )  如果真 (i < 取字节集长度 (buf ))    i = i + 1  charWidth = 2  newLine = 真   charWidth = 1    如果真 (currentLineLength + charWidth > lineLength 或 newLine )  wrappedText = wrappedText + 选择 (newLine, { }, { 13, 10 })  currentLineLength = 0 wrappedText = wrappedText + 取字节集中间 (buf, i - charWidth + 1, charWidth) currentLineLength = currentLineLength + 选择 (newLine, 0, charWidth ) 判断循环尾 ()返回 (取字节集数据 (wrappedText, #文本型, )) |