|
- .版本 2
- .支持库 spec
- .支持库 EThread
- .支持库 YunReg
- .程序集 程序集1
- .程序集变量 计数2, 整数型
- .程序集变量 模式, 文本型
- .子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码
- ' 由于分卷的INI文件,是分散在多个文件上的,通过配置项名称计算出一个编号并写入该编号的文件名中,读写文件往往较快,单文件只要不太大,速度基本不会有多大变化。
- ' 而单个INI文件的读写一次,需要读入整个内存,送入CPU进行逐行分析修改,非常费时,文件越大读写越慢,上百MB就容易崩溃,读写完需要数天的时间。
- ' 如果需要频繁读写的INI文件超过10Mb,那么就需要用本方法进行分卷读写,否则会严重影响到程序运行效率。
- _临时子程序 () ' 在初始化代码执行完毕后调用测试代码
- 返回 (0) ' 可以根据您的需要返回任意数值
- .子程序 _临时子程序
- .局部变量 配置项目录, 文本型
- .局部变量 计数, 整数型
- .局部变量 时间, 整数型
- .局部变量 MD5, 文本型
- .局部变量 配置项文件, 文本型
- .局部变量 测试条数, 整数型
- ' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 ***注意不要修改本子程序的名称、参数及返回值类型。
- 调试输出 (“程序开始”)
- 创建目录 (“data”)
- 配置项目录 = 取运行目录 () + “/data”
- 配置项文件 = 取运行目录 () + “/data.ini”
- 测试条数 = 100000
- 启动线程 (&频率统计, , )
- 时间 = 取启动时间 ()
- 计数2 = 0
- 模式 = “分卷写”
- .计次循环首 (测试条数, 计数)
- 计数2 = 计数2 + 1
- 写配置项_分卷 (配置项目录, “data”, 到文本 (计数), 到文本 (计数), 100)
- .计次循环尾 ()
- 调试输出 (模式 + 到文本 (测试条数) + “条INI时间(秒)”, (取启动时间 () - 时间) ÷ 1000)
- 模式 = “分卷读”
- 计数2 = 0
- 时间 = 取启动时间 ()
- .计次循环首 (测试条数, 计数)
- 计数2 = 计数2 + 1
- 读配置项_分卷 (配置项目录, “data”, 到文本 (计数), , 100)
- .计次循环尾 ()
- 调试输出 (模式 + 到文本 (测试条数) + “条INI时间(秒)”, (取启动时间 () - 时间) ÷ 1000)
- 模式 = “传统写”
- 计数2 = 0
- 时间 = 取启动时间 ()
- .计次循环首 (测试条数, 计数)
- 计数2 = 计数2 + 1
- 写配置项 (配置项文件, “data”, 到文本 (计数), 到文本 (计数))
- .计次循环尾 ()
- 调试输出 (模式 + 到文本 (测试条数) + “条INI时间(秒)”, (取启动时间 () - 时间) ÷ 1000)
- 模式 = “传统读”
- 计数2 = 0
- 时间 = 取启动时间 ()
- .计次循环首 (测试条数, 计数)
- 计数2 = 计数2 + 1
- 写配置项 (配置项文件, “data”, 到文本 (计数), 到文本 (计数))
- .计次循环尾 ()
- 调试输出 (模式 + 到文本 (测试条数) + “条INI时间(秒)”, (取启动时间 () - 时间) ÷ 1000)
- ' 调试输出 (读配置项_分卷 (配置项目录, “data”, “99c5e07b4d5de9d18c350cdf64c5aa3d”, “失败”, 100))
- .子程序 读配置项_分卷, 文本型, 公开, 将配置文件中的大量配置项拆分成多个INI文件以提高读写性能。
- .参数 配置项目录, 文本型, , 目录中将包含若干个 0以上数字.ini 这些文件。
- .参数 节名称, 文本型, , 包含欲写入配置项所处节的名称,详见 读配置项()
- .参数 配置项名称, 文本型, , 通过配置项名称,读出配置项对应的值,详见 读配置项()
- .参数 默认文本, 文本型, 可空, 配置项读入失败返回的文本,详见 读配置项()
- .参数 分卷数, 整数型, , 范围在2~1073741824之间,数据越大则分卷数应越多,读写的分卷数不一致将读不出或出现错乱。
- .局部变量 配置项目录2, 文本型
- .局部变量 文件名, 文本型
- .局部变量 文件编号, 整数型
- .如果真 (分卷数 < 2 或 分卷数 > 1073741824)
- 返回 (“”)
- .如果真结束
- 文件编号 = 取绝对值 (取数据CRC较验码 (到字节集 (配置项名称))) % 分卷数
- 配置项目录2 = 子文本替换 (配置项目录, “/”, “\”, , , 真)
- 文件名 = 配置项目录2 + “\” + 到文本 (文件编号) + “.ini”
- 返回 (读配置项 (文件名, 节名称, 配置项名称, 默认文本))
- .子程序 写配置项_分卷, 逻辑型, 公开, 与 读配置项_分卷() 配套使用。
- .参数 配置项目录, 文本型, , 详见 读配置项_分卷()
- .参数 节名称, 文本型, , 详见 写配置项()
- .参数 配置项名称, 文本型, , 详见 写配置项()
- .参数 欲写入值, 文本型, , 详见 写配置项()
- .参数 分卷数, 整数型, , 详见 读配置项_分卷()
- .局部变量 配置项目录2, 文本型
- .局部变量 文件名, 文本型
- .局部变量 文件编号, 整数型
- .如果真 (分卷数 < 2 或 分卷数 > 1073741824)
- 返回 (假)
- .如果真结束
- 配置项目录2 = 子文本替换 (配置项目录, “/”, “\”, , , 真)
- 文件编号 = 取绝对值 (取数据CRC较验码 (到字节集 (配置项名称))) % 分卷数
- 文件名 = 配置项目录2 + “\” + 到文本 (文件编号) + “.ini”
- 返回 (写配置项 (文件名, 节名称, 配置项名称, 欲写入值))
- .子程序 频率统计
- .判断循环首 (真)
- 延时 (10 × 1000)
- 调试输出 (模式 + “频率(hz)”, 计数2 ÷ 10)
- 计数2 = 0
- .判断循环尾 ()
复制代码
|
|