精易论坛

标题: 火山分割文本问题 [打印本页]

作者: tzaiya    时间: 2023-7-31 02:29
标题: 火山分割文本问题
火山分割文本问题几千万行的文本 分割换行 特别慢
有什么方法快一点的

作者: 蜗牛人生    时间: 2023-7-31 03:06
<火山程序 类型 = "通常" 版本 = 1 />

方法 w_文本_分割 <公开 静态 类型 = 逻辑型 注释 = "判断循环 (w_文本_分割 (一行文本, 要处理的文本, \",\"))"
        注释 = "如果中途有跳出循环,务必使用: 置文本标记值 (要处理的文本, 0)" 折叠>
参数 返回文本 <类型 = 文本型 注释 = "必须是变量">
参数 要处理的文本 <类型 = 文本型 注释 = "必须是变量  该变量的标记值,将会被占用!">
参数 分割符 <类型 = 文本型 @默认值 = "\r\n">
{
    变量 文本指针 <类型 = 变整数>
    变量 分割首字符 <类型 = 字符>
    变量 当前字符 <类型 = 字符>
    清空文本 (返回文本)
    如果 (文本是否为空 (要处理的文本) || 文本是否为空 (分割符))
    {
        返回 (假)
    }
    文本指针 = 取文本标记值 (要处理的文本)

    如果 (文本指针 == 0)  // 初始化..
    {
        文本指针 = 取文本指针 (要处理的文本)
    }
    否则 (文本指针 == -1)
    {
        置文本标记值 (要处理的文本, 0)
        返回 (假)
    }
    分割首字符 = 读指针处值 (取文本指针 (分割符), 字符)
    判断循环 (真)
    {
        当前字符 = 读指针处值 (文本指针, 字符)
        如果 (当前字符 == 0)  // 文本结束符号!
        {
            置文本标记值 (要处理的文本, -1)
            返回 (真)
        }
        否则 (分割首字符 != 当前字符)  // 不匹配..
        {
            文本指针 = 文本指针 + 2
            加入字符 (返回文本, 当前字符)
            到循环尾
        }
        否则 (w_文本_是否以文本开头 (文本指针, 分割符))
        {
            文本指针 = 文本指针 + 取文本长度 (分割符) * 2
            置文本标记值 (要处理的文本, 文本指针)
            返回 (真)
        }
        加入字符 (返回文本, 当前字符)
        文本指针 = 文本指针 + 2
    }
    返回 (假)
}

作者: 896006129    时间: 2023-10-2 08:19
<火山程序 类型 = "通常" 版本 = 1 />

方法 大文件分割 <类型 = 字节集数组类>
参数 参_文件路径 <类型 = 文本型>
参数 分割符 <类型 = 文本型>
{
    变量 源 <类型 = 字节集类>
    变量 字节集结果 <类型 = 字节集数组类>
    源 = 读入文件 (参_文件路径, )
    分割字节集 (源, 文本到多字节 (分割符, 假), 字节集结果, )
    返回 (字节集结果)

}





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