[算法分享]提取出文本中的 DR 码
本帖最后由 tang_ge 于 2022-7-25 10:45 编辑虽然使用正则可以快速提取出文本中的 DR 码
正则文本:
\
效果:
对于单个 DR 码很好用,但是多个就出现问题(匹配到的结果不是我们想要的),所以要换思路,想到之前群友分享的用 精益模块 中的 文本_* 操作提取 DR 码,研究了下终于搞出可以稳定运行的代码
在提取出 DR 码之后利用每个参数间用“,”分割的特点,使用文本分割转为数组进行下一步处理
这里写了一个 Class_Code 类来对 DR 码转换为 Json 文本
.版本 2
.程序集 Class_Code
.程序集变量 Json, 类_json
.子程序 _初始化, , , 当基于本类的对象被创建后,此方法会被自动调用
.子程序 _销毁, , , 当基于本类的对象被销毁前,此方法会被自动调用
.子程序 GetParam, 文本型, 公开
.参数 Key, 文本型
返回 (Json.取通用属性 (“Data.” + Key, ))
.子程序 SetParam, , 公开
.参数 Key, 文本型
.参数 Value, 文本型
.局部变量 _Json, 类_json
_Json.置属性 (Key, Value, )
Json.置属性 (“Data”, _Json.取数据文本 (), 真)
.子程序 SetParams, , 公开
.参数 Params, 文本型, 数组
.局部变量 i, 整数型
.局部变量 p, 文本型
.计次循环首 (取数组成员数 (Params), i)
p = Params
SetParam (文本_取左边 (p, “=”, , ), 文本_取右边 (p, “=”, -1, ))
.计次循环尾 ()
.子程序 GetType, 文本型, 公开
返回 (Json.取通用属性 (“Type”, ))
.子程序 SetType, , 公开
.参数 Type, 文本型
Json.置属性 (“Type”, Type, )
.子程序 GetCodeData, 文本型, 公开
返回 (Json.取数据文本 ())
当然还用到了取出数组中指定范围内的一个函数:
.版本 2
.子程序 数组_取指定范围, 逻辑型
.参数 Start, 整数型
.参数 End, 整数型
.参数 Ref_List, 文本型, 参考 数组
.局部变量 i, 整数型
.局部变量 step, 整数型
.局部变量 res, 文本型, , "0"
.如果真 (Start > End 或 End > 取数组成员数 (Ref_List) 或 Start < 1)
返回 (假)
.如果真结束
step = End - Start + 1
.计次循环首 (step, i)
加入成员 (res, Ref_List )
.计次循环尾 ()
Ref_List = res
返回 (真)
最终结果:
源码:
**** Hidden Message *****
*需要精益模块
看了楼主的帖子,我只想说一句很好很强大! 谢谢分享 1 6666666 强大的易语言能力
页:
[1]