精易论坛

标题: 精易模块5.11 文本_取中间_批量 BUG [打印本页]

作者: 小落落    时间: 2015-1-3 23:37
标题: 精易模块5.11 文本_取中间_批量 BUG
本帖最后由 萧阳天 于 2015-1-4 17:12 编辑

BUG.zip (876.4 KB, 下载次数: 32)
使用命令后无法取出中间文本。

作者: 御风软件    时间: 2015-1-4 00:22
本帖最后由 御风软件 于 2015-1-4 00:24 编辑

没有看出bug在那里,但是这写法明显的有问题,漏了第一个

用的竟然是前面一个的结尾,和后面的一个的结尾来取的数据
文本_取中间_批量 (返回文本, “</td></tr><tr><td>”, “</td></tr><tr><td>”, 文本, )  ' bug部分

这样子,取到的第一个数据,其实是第二条数据,因为开始文本是第一条的结尾,结束文本是第二条的结尾,后面的以此类推

作者: Hoibben    时间: 2015-1-4 00:29
个人不建议使用这个命令 纯粹是鸡肋 该命令批量取数据的时候耗时10秒的数据 可能用正则就1秒的事情~


作者: 萧阳天    时间: 2015-1-4 17:11
这个修改后试试,貌似不吃CPU了。
  1. .版本 2

  2. .子程序 文本_取中间_批量2, 整数型, 公开, 比如:欲取全文本为<12345>,现在要取出“3”,<3>的前面为“2”,<3>的后面为“4”
  3. .参数 源文本, 文本型, , 比如:欲取全文本为 12345
  4. .参数 前面标识文本, 文本型, , 3的前面为“2”
  5. .参数 后面标识文本, 文本型, , 3的后面为“4”
  6. .参数 存放取出文本的数组, 文本型, 可空 数组, 存放取出文本的数组
  7. .参数 是否区分大小写, 逻辑型, 可空, 是否区分大小写
  8. .参数 文本长度大于此数的不要, 整数型, 可空, 文本长度大于此数的不要;如取出的文本大于50的不要;留空为不限制
  9. .参数 为取出的文本加上前缀, 文本型, 可空, 在取出的文本前面加上一段字符或汉字!可空!
  10. .参数 为取出的文本加上后缀, 文本型, 可空, 在取出的文本后面加上一段字符或汉字!可空!
  11. .参数 连前面标识文本一起取出, 逻辑型, 可空, 是否连<前面标识文本>一起取出? 默认为假,不取出!
  12. .参数 连后面标识文本一起取出, 逻辑型, 可空, 是否连<后面标识文本>一起取出? 默认为假,不取出!
  13. .参数 起始搜寻位置, 整数型, 可空, 注明:位置值从 1 开始。如果本参数被省略,默认为 1 。
  14. .局部变量 Search, 文本型
  15. .局部变量 StartPos, 整数型
  16. .局部变量 EndPos, 整数型

  17. 清除数组 (存放取出文本的数组)
  18. StartPos = 起始搜寻位置
  19. .循环判断首 ()
  20.     StartPos = 寻找文本 (源文本, 前面标识文本, StartPos, 是否区分大小写)
  21.     .如果 (StartPos ≠ -1)
  22.         EndPos = 寻找文本 (源文本, 后面标识文本, StartPos + 取文本长度 (前面标识文本), 是否区分大小写)
  23.         .如果 (EndPos ≠ -1)
  24.             StartPos = StartPos + 取文本长度 (前面标识文本)
  25.             Search = 删首尾空 (取文本中间 (源文本, StartPos, EndPos - StartPos))
  26.             .如果真 (取文本长度 (Search) > 0)
  27.                 .如果真 (连前面标识文本一起取出)
  28.                     Search = 前面标识文本 + Search
  29.                 .如果真结束
  30.                 .如果真 (连后面标识文本一起取出)
  31.                     Search = Search + 后面标识文本
  32.                 .如果真结束
  33.                 .如果 (文本长度大于此数的不要 ≠ 0)
  34.                     .如果真 (取文本长度 (Search) < 文本长度大于此数的不要)
  35.                         加入成员 (存放取出文本的数组, Search)
  36.                     .如果真结束

  37.                 .否则
  38.                     加入成员 (存放取出文本的数组, Search)
  39.                 .如果结束
  40.                 StartPos = EndPos
  41.             .如果真结束

  42.         .否则
  43.             跳出循环 ()
  44.         .如果结束

  45.     .否则
  46.         跳出循环 ()
  47.     .如果结束
  48.     处理事件 ()
  49. .循环判断尾 (StartPos ≠ -1)
  50. 返回 (取数组成员数 (存放取出文本的数组))
复制代码

作者: 小落落    时间: 2015-1-4 17:27
御风软件 发表于 2015-1-4 00:22
没有看出bug在那里,但是这写法明显的有问题,漏了第一个

用的竟然是前面一个的结尾,和后面的一个的结 ...

用文本_取中间_正则方式可以取出来
作者: 铅笔刀    时间: 2015-1-5 18:42
使用3,12的就没有这个bug
作者: 外地患者    时间: 2015-1-19 16:58
使用命令后无法取出中间文本。
作者: 表哥怡风    时间: 2017-6-20 17:15
使用命令后无法取出中间文本。
作者: 魔狱    时间: 2024-4-22 15:19
使用命令后无法取出中间文本。




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