先说明一下BUG情况:
精易模块6.5以及以下的版本,批量_超级列表框_读取配置,当ini配置文件内的组件字符大于1万个字符,就会无法完整读取,只能读取一部分。
根本原因在于:易语言自带子程序:读配置项()这个子程序存在BUG,也就是配置项的内容大于1万个字符,就会无法完整读取,只能读取一部分。。
起初困扰了我好久,我在论坛上找了一圈,居然没有正确的写法和解决方案。
只能自己写了,同时附带正确的源码,希望给新手带来帮助。
希望管理员,在精易模块下一个版本把这个正确的代码修复进去!
|
批量_超级列表框_读取配置 | 整数型 | | |
组件的父窗口 | 窗口 | | | | 配置文件名 | 文本型 | | | |
变量名 | 类 型 | 静态 | 数组 | 备 注 | 局_寻找句柄 | 整数型 | | | 局_计次 | 整数型 | | | 局_组件 | 超级列表框 | | | 局_临时文本 | 文本型 | | | 局_组件数量 | 整数型 | | | 局_列数 | 整数型 | | | 局_项数 | 整数型 | | | 局_数组1 | 文本型 | | 0 | 局_数组2 | 文本型 | | 0 | 局_计次1 | 整数型 | | | 局_计次2 | 整数型 | | | 表项 | 整数型 | | | 如果真 (是否为空 (配置文件名 )) 配置文件名 = 取默认目录 ()局_寻找句柄 = 寻找组件 (组件的父窗口, , “超级列表框”, , )局_组件数量 = 取找到组件数目 (局_寻找句柄 )计次循环首 (局_组件数量, 局_计次 )局_组件 = 取所找到组件 (局_寻找句柄, 局_计次 - 1 ) 局_临时文本 = 文本_取中间文本 (到文本 (读入文件 (配置文件名 )), 取组件名称 (局_组件 )+"=", #换行符, , )局_数组1 = 分割文本 (局_临时文本, “{!}”, )局_项数 = 取数组成员数 (局_数组1 )计次循环首 (局_项数, 局_计次1 )局_数组2 = 分割文本 (局_数组1 [局_计次1 ], “|”, )表项 = 局_组件. 插入表项 (, , , , , )局_列数 = 取数组成员数 (局_数组2 )计次循环首 (局_列数, 局_计次2 )局_组件. 置标题 (表项, 局_计次2 - 1, 局_数组2 [局_计次2 ])计次循环尾 ()计次循环尾 ()计次循环尾 ()清除组件寻找句柄 (局_寻找句柄 )返回 (局_组件数量 )
补充内容 (2019-3-18 22:56):
补上一句,代码里面漏掉了一个等于号=:局_临时文本 = 文本_取中间文本 (到文本 (读入文件 (配置文件名)), 取组件名称 (局_组件)+"=", #换行符, , ) |