本帖最后由 墨影0620 于 2018-7-16 11:52 编辑
[**kcolor=rgb(249, 249, 249)].版本 2[/**kcolor]
[**kcolor=rgb(249, 249, 249)].子程序 文本_去重复文本优化版, 文本型, 公开, 去除原文本中重复的文本
.参数 原文本, 文本型
.参数 分割符, 文本型, 可空, 原文本单个内容间的分隔符,例如:---【说明:如留空则逐字检查是否重复。】
.局部变量 局_数组, 文本型, , "0"
.局部变量 局_数组1, 文本型, , "0"
.局部变量 局_计次, 整数型
.局部变量 局_文本, 文本型[/**kcolor]
[**kcolor=rgb(249, 249, 249)].如果 (分割符 = “”)
文本_逐字分割 (原文本, 局_数组)
.否则
局_数组 = 分割文本 (原文本, 分割符, )
.如果结束
.计次循环首 (取数组成员数 (局_数组), 局_计次)
.如果真 (内部_数组成员是否存在_文本 (局_数组1, 局_数组 [局_计次]) = -1)
加入成员 (局_数组1, 局_数组 [局_计次])
局_文本 = 局_文本 + 局_数组 [局_计次] + 分割符
.如果真结束[/**kcolor]
[**kcolor=rgb(249, 249, 249)].计次循环尾 ()
局_文本 = 取文本左边 (局_文本, 取文本长度 (局_文本) - 取文本长度 (分割符))
返回 (局_文本)[/**kcolor]
优化:逐字比对模式
.版本 2
.子程序 文本_取文本所在行优化版, 整数型, 公开, 查找某段字或关键中在文本中的哪一行出现,成功返回行数,失败返回0
.参数 源文本, 文本型
.参数 欲查找的文本, 文本型
.参数 起始搜寻位置, 整数型, 可空, 位置值从 1 开始。如果本参数被省略,默认为 1 【单位:行】
.参数 是否区分大小写, 逻辑型, 可空
.局部变量 局_文本, 文本型, , "0"
.局部变量 局_计次, 整数型
局_文本 = 分割文本 (源文本, #换行符, )
.计次循环首 (取数组成员数 (局_文本), 局_计次)
.如果真 (是否为空 (起始搜寻位置))
起始搜寻位置 = 1
.如果真结束
.如果真 (寻找文本 (局_文本 [局_计次], 欲查找的文本, , 取反 (是否区分大小写)) ≠ -1)
.如果真 (局_计次 ≥ 起始搜寻位置)
返回 (局_计次)
.如果真结束
.如果真结束
.计次循环尾 ()
返回 (0)
[**kcolor=rgb(249, 249, 249)]优化:新增设置起始搜寻位置,可以指定从某行开始搜索。[/**kcolor]
|