递归火山软件开发平台
标题:
文本_逐行分割
[打印本页]
作者:
小蜗牛
时间:
2024-5-17 17:54
标题:
文本_逐行分割
有时候为了逐行读取,而分割到数组,必要性不大.所以写了这个~
<火山程序 类型 = "通常" 版本 = 1 />
方法 文本_逐行分割 <公开 静态 类型 = 逻辑型 注释 = "判断循环 (文本_逐行分割 (一行文本, 要处理的文本, \",\"))"
注释 = "如果中途有跳出循环,务必使用: 置文本标记值 (返回一行文本, 0)" 折叠>
参数 返回一行文本 <类型 = 文本型 注释 = "必须是变量 该变量的标记值,将会被占用! 刚开始时,请确保标记值为0">
参数 要分割的文本 <类型 = 文本型 注释 = "">
参数 分割符 <类型 = 文本型 @默认值 = "\r\n">
{
变量 尾部位置 <类型 = 整数>
变量 起始位置 <类型 = 整数>
变量 列数 <类型 = 整数>
变量 获取长度 <类型 = 整数>
如果 (文本是否为空 (分割符)) // 防止空文本时,出现死循环~
{
返回 (假)
}
起始位置 = (整数)取文本标记值 (返回一行文本)
清空文本 (返回一行文本)
如果 (起始位置 == -1)
{
置文本标记值 (返回一行文本, 0) // 恢复默认标记值
返回 (假)
}
如果 (起始位置 == 0 && 取文本预分配字符数 (返回一行文本) == 0)
{
置文本预分配字符数 (返回一行文本, 5 * 1024) // 事先分配内存,加快处理速度~
}
尾部位置 = 寻找文本 (要分割的文本, 分割符, 起始位置)
如果 (尾部位置 == -1)
{
如果 (起始位置 == 0) // 整个文本都没有分割符...
{
置文本 (返回一行文本, 要分割的文本)
置文本标记值 (返回一行文本, -1)
返回 (真)
}
获取长度 = 取文本长度 (要分割的文本) - 起始位置 // 获取后面所有的~
文本类.添加部分文本指针内容 (返回一行文本, 取文本指针 (要分割的文本) + 起始位置 * 取数据类型尺寸 (字符), 获取长度) // 置文本 (返回文本, 取文本中间 (要处理的文本, 起始位置, 获取长度))
置文本标记值 (返回一行文本, 选择 (获取长度 > 0, -1, 0))
返回 (获取长度 > 0)
}
否则
{
获取长度 = 尾部位置 - 起始位置 // 获取中间部分
文本类.添加部分文本指针内容 (返回一行文本, 取文本指针 (要分割的文本) + 起始位置 * 取数据类型尺寸 (字符), 获取长度) // 置文本 (返回文本, 取文本中间 (要处理的文本, 起始位置, 获取长度))
置文本标记值 (返回一行文本, 尾部位置 + 取文本长度 (分割符))
返回 (真)
}
}
欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/)
Powered by Discuz! X3.4