开启辅助访问

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

代码实现易语言的分割文本()

查看数: 4256 | 评论数: 17 | 收藏 7
关灯 | 提示:支持键盘翻页 & lt;-左 右 ->
    组图打开中,请稍候......
发布时间: 2021-11-26 23:29

正文摘要:

  子程序名返回值类型公开备 注文本模块_分割文本整数型 注意会删除空文本(参数_分割用文本 是空文本的话,是其他字符也会删除调)。 在短的数据里,数据量又大的时候,可能会比默认的分割文本快, ...

回复

APPLEUFO   福建省福州市 发表于 2022-10-28 00:23:55
.版本 2
.支持库 spec

.子程序 文本模块_分割文本3, 整数型, 公开
.参数 参数_原始文本, 文本型
.参数 参数_分割用文本, 文本型
.参数 参数_结果数组, 文本型, 数组,  
.局部变量 局变_找到位置, 整数型
.局部变量 局变_首, 整数型
.局部变量 局变_尾, 整数型
.局部变量 局变_分隔符位置, 模块_游标, , "0"
.局部变量 局变_游标, 模块_游标
.局部变量 n1, 整数型
.局部变量 局变_结尾, 整数型, , , 用于开始和结束的边界变量

.如果真 (取文本长度 (参数_原始文本) = 0)
    返回 (0)
.如果真结束

局变_找到位置 = 寻找文本 (参数_原始文本, 参数_分割用文本, , 假)
.如果真 (局变_找到位置 = -1)
    返回 (0)
.如果真结束

清除数组 (参数_结果数组)

.循环判断首 ()

    局变_首 = 寻找文本 (参数_原始文本, 参数_分割用文本, 局变_尾 + 1, 假)
    .如果 (局变_首 = -1)
        跳出循环 ()
    .否则

        局变_尾 = 局变_首 + 取文本长度 (参数_分割用文本) - 1

        局变_游标.首 = 局变_首
        局变_游标.尾 = 局变_尾
        加入成员 (局变_分隔符位置, 局变_游标)
    .如果结束

.循环判断尾 (真)


.计次循环首 (取数组成员数 (局变_分隔符位置), n1)
    .如果 (n1 = 1)

        .如果 (局变_分隔符位置 [n1].首 - 1 = 0)  ' 开始的边界
            ' 不用添加一个空文本了
        .否则

            加入成员 (参数_结果数组, 文本模块_取文本中间_位置 (参数_原始文本, 1, 局变_分隔符位置 [n1].首 - 1))
        .如果结束


    .否则

        加入成员 (参数_结果数组, 文本模块_取文本中间_位置 (参数_原始文本, 局变_分隔符位置 [n1 - 1].尾 + 1, 局变_分隔符位置 [n1].首 - 1))
    .如果结束


.计次循环尾 ()

局变_结尾 = 局变_分隔符位置 [取数组成员数 (局变_分隔符位置)].尾 + 1  ' 这里是结尾

.如果 (局变_结尾 ≥ 取文本长度 (参数_原始文本))
    ' 无动作   不用添加了///   = 是一样长,大于是一样长且超过末尾文本长度了
.否则

    加入成员 (参数_结果数组, 文本模块_取文本中间_位置 (参数_原始文本, 局变_结尾, 取文本长度 (参数_原始文本)))  ' 最后一个'  这里待会看看
.如果结束


调试输出 (局变_分隔符位置 [取数组成员数 (局变_分隔符位置)].尾 + 1, , 取文本长度 (参数_原始文本))

返回 (取数组成员数 (参数_结果数组))


新的,不快能用就是了
APPLEUFO   福建省福州市 发表于 2022-10-26 01:34:41
  
子程序名返回值类型公开备 注
文本模块_分割文本3整数型 
参数名类 型参考可空数组备 注
参数_原始文本文本型
参数_分割用文本文本型
参数_结果数组文本型
变量名类 型静态数组备 注
局变_找到位置整数型 
局变_首整数型 
局变_尾整数型 
局变_分隔符位置模块_游标0
局变_游标模块_游标 
n1整数型 
如果真 (取文本长度 (参数_原始文本) = 0)
返回 (0)

局变_找到位置 = 寻找文本 (参数_原始文本, 参数_分割用文本, , )
如果真 (局变_找到位置 = -1)
返回 (0)

清除数组 (参数_结果数组)
循环判断首 ()
局变_首 = 寻找文本 (参数_原始文本, 参数_分割用文本, 局变_尾 + 1, )
如果 (局变_首 = -1)
跳出循环 ()


局变_尾 = 局变_首 + 取文本长度 (参数_分割用文本) - 1
局变_游标.首 = 局变_首
局变_游标.尾 = 局变_尾
加入成员 (局变_分隔符位置, 局变_游标)

循环判断尾 ()
计次循环首 (取数组成员数 (局变_分隔符位置), n1)
如果 (n1 = 1)
加入成员 (参数_结果数组, 文本模块_取文本中间_位置 (参数_原始文本, 1, 局变_分隔符位置 [n1].首 - 1))


加入成员 (参数_结果数组, 文本模块_取文本中间_位置 (参数_原始文本, 局变_分隔符位置 [n1 - 1].尾 + 1, 局变_分隔符位置 [n1].首 - 1))

计次循环尾 ()
加入成员 (参数_结果数组, 文本模块_取文本中间_位置 (参数_原始文本, 局变_分隔符位置 [取数组成员数 (局变_分隔符位置)].尾 + 1, 取文本长度 (参数_原始文本)))  ' 最后一个
返回 (取数组成员数 (参数_结果数组))


.版本 2

.数据类型 模块_游标, 公开, 游标是一个类似"点",有横坐标,纵坐标的数据类型,游标则有首,尾组成,取自丈量长度的游标卡尺
    .成员 首, 整数型
    .成员 尾, 整数型



新的  修复bug

ghost12   上海市上海市 发表于 2022-5-3 04:01:29
感谢发布原创作品,一定好好学习,天天向上
APPLEUFO   福建省福州市 发表于 2022-1-25 22:11:34
瓶中仙子 发表于 2022-1-24 00:56
刚才测试好像很慢啊

应该不会慢太多,另外这个会删除空内容的文本,可以减少以后循环删除空文本的步骤,分割后的数据也会比默认的少一些
瓶中仙子   广西壮族自治区南宁市 发表于 2022-1-24 00:56:32
刚才测试好像很慢啊
瓶中仙子   广西壮族自治区南宁市 发表于 2022-1-24 00:46:22
比易自带的分割文本的速度怎么样
趣冉科技   浙江省嘉兴市 发表于 2022-1-4 21:55:54
感谢楼主分享,支持一下~~!!!
q312459945   安徽省芜湖市 发表于 2021-12-4 19:48:33
啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊啊
APPLEUFO   福建省福州市 发表于 2021-12-4 10:33:42
我就我 发表于 2021-12-1 04:55
有点不懂,从源码来看aaaaa不也是数组?

  aaa是文本型啊
发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报电话0663-3422125,QQ: 793400750,邮箱:[email protected]
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备12094385号-1) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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