递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库

有关文本类操作

查看数: 4975 | 评论数: 4 | 收藏 1
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2023-12-5 12:59

正文摘要:

有一段很长的文本,需要每5字符插入一个回车符,我是用一个大循环一个一个插入,但这种方法太耗时间了,有没有一种方法一次插入的,速度要快

回复

Xelloss0618 发表于 2023-12-5 17:53:45
Q624353765 发表于 2023-12-5 17:44
速度提高好多倍,小修改了下

返回文本型会多复制一次内存,不过看你喜欢了
承易 发表于 2023-12-5 17:51:24
此时此刻才体现了火山C++的威力
Xelloss0618 发表于 2023-12-5 14:17:03
可以试下这个,优化的重点是将分配内存的次数降到最低。


<火山程序 类型 = "通常" 版本 = 1 />

方法 间隔插入指定文本 <公开 静态>
参数 原始文本 <类型 = 文本型 注释 = "所欲插入内容的文本">
参数 结果文本 <类型 = 文本型 注释 = "插入结果返回到此参数">
参数 插入内容 <类型 = 文本型 注释 = "所欲插入的内容" @默认值 = "\r\n">
参数 插入间隔 <类型 = 整数 注释 = "每隔多少个字符插入指定的内容" @默认值 = 5>
{
    清空文本 (结果文本)
    变量 文本长度 <类型 = 整数>
    变量 文本指针 <类型 = 变整数>
    文本长度 = 取文本长度 (原始文本)
    文本指针 = 取文本指针 (原始文本)
    如果 (文本长度 < 插入间隔)
    {
        置文本指针 (结果文本, 文本指针)
        返回
    }
    变量 循环次数 <类型 = 整数>
    循环次数 = 文本长度 / 插入间隔
    置文本预分配字符数 (结果文本, 文本长度 + (循环次数 + 1) * 取文本长度 (插入内容))
    计次循环 (循环次数)
    {
        添加部分文本指针内容 (结果文本, 文本指针, 插入间隔)
        加入文本 (结果文本, 插入内容)
        文本指针 = 文本指针 + 插入间隔 * 2
    }
    如果 (文本长度 % 插入间隔 > 0)
    {
        添加文本指针内容 (结果文本, 文本指针)
    }
}

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-11-24 02:52 , Processed in 0.088304 second(s), 22 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表