|
刚好用到,而自身又不支持,我就给改了改。你把这个代码 合并进去,给加个参数 : 是否多字节
测试了,没问题。
- <火山程序 类型 = "通常" 版本 = 1 />
- 类 配置项 <公开 折叠>
- {
- 方法 test
- {
- 变量 fileini <类型 = 文本型>
- fileini = 取特定目录 (特定目录类型.系统桌面) + "cg.ini"
- 变量 index1 <类型 = 整数 值 = 0>
- 变量 index2 <类型 = 整数 值 = 0>
- 计次循环 (3)
- {
- index2 = 0
- 计次循环 (3)
- {
- 配置项.写 (fileini, "aaa" + 到文本 (index1), "name" + 到文本 (index2), "val" + 到文本 (index2))
- index2 = index2 + 1
- }
- index1 = index1 + 1
- }
- index1 = 0
- 计次循环 (3)
- {
- index2 = 0
- 计次循环 (3)
- {
- 调试输出 ("aaa" + 到文本 (index1), "name" + 到文本 (index2), 配置项.读 (fileini, "aaa" + 到文本 (index1), "name" + 到文本 (index2)))
- index2 = index2 + 1
- }
- index1 = index1 + 1
- }
- 调试输出 (配置项.取节名 (fileini))
- }
- 方法 读 <公开 静态 类型 = 文本型 注释 = "读取并返回所指定配置文件中指定项目的文本内容" 折叠>
- 参数 配置文件名 <类型 = 文本型 注释 = "指定配置文件的名称,通常以"ini"作为文件名后缀.">
- 参数 节名称 <类型 = 文本型 注释 = "指定欲读入配置项所处节的名称">
- 参数 配置项名称 <类型 = 文本型 注释 = "指定欲读入配置项在其节中的名称">
- 参数 默认值 <类型 = 文本型 注释 = "如果所指定配置项不存在,将返回此默认值文本." @默认值 = "">
- {
- 变量 结果变量 <静态 类型 = 字节集类>
- 如果 (文本是否为空 (配置文件名) == 假 && 文本是否为空 (节名称) == 假 && 文本是否为空 (配置项名称) == 假)
- {
- 结果变量.分配字节集 (10240, 真)
- @ GetPrivateProfileStringA (GetMbsText (@<节名称>.GetText (), CVolMem (), NULL), GetMbsText (@<配置项名称>.GetText (), CVolMem (), NULL), GetMbsText (@<默认值>.GetText (), CVolMem (), NULL), (LPSTR)@<结果变量>.GetPtr (), @<结果变量>.GetSize (), GetMbsText (@<配置文件名>.GetText (), CVolMem (), NULL));
- }
- 返回 (多字节到文本 (结果变量))
- }
- 方法 写 <公开 静态 类型 = 逻辑型 注释 = " 将指定文本内容写入指定配置项中或者删除指定的配置项或节," 注释 = "如果指定配置文件不存在,将会自动创建." 返回值注释 = "返回是否成功"
- 折叠 折叠2 @禁止流程检查 = 真>
- 参数 配置文件名 <类型 = 文本型 注释 = "指定配置文件的名称,通常以"ini"作为文件名后缀.">
- 参数 节名称 <类型 = 文本型 注释 = "指定欲写入配置项所处节的名称">
- 参数 配置项名称 <类型 = 文本型 注释 = "指定欲写入配置项在其节中的名称.如果为空对象,则删除指定节及其下的所有配置项." @默认值 = 空对象>
- 参数 欲写入值 <类型 = 文本型 注释 = "指定欲写入到指定配置项中的文本,如果为空对象,则删除所指定配置项." @默认值 = 空对象>
- {
- @ return WritePrivateProfileStringA (GetMbsText (@<节名称>.GetText (), CVolMem (), NULL), (@<配置项名称>.IsNullObject () ? NULL : GetMbsText (@<配置项名称>.GetText (), CVolMem (), NULL)), (@<欲写入值>.IsNullObject () ? NULL : GetMbsText (@<欲写入值>.GetText (), CVolMem (), NULL)), GetMbsText (@<配置文件名>.GetText (), CVolMem (), NULL));
- }
- 方法 取节名 <公开 静态 类型 = 文本数组类 注释 = "返回指定配置文件中所有已有节名的文本数组" 折叠>
- 参数 配置文件名 <类型 = 文本型 注释 = "指定配置文件的名称,通常以"ini"作为文件名后缀.">
- {
- 变量 结果变量 <类型 = 文本数组类>
- 变量 节名 <类型 = 字节集类>
- 变量 节名组 <类型 = 字节集数组类>
- 节名.分配字节集 (256 * 1024, 真)
- @ GetPrivateProfileSectionNamesA ((LPSTR)@<节名>.GetPtr (), @<节名>.GetSize (), GetMbsText (@<配置文件名>.GetText (), CVolMem (), NULL));
- 节名.删除字节集尾部数据 (节名.寻找字节集 (创建字节集 (0, 0), ))
- 分割字节集 (节名, 创建字节集 (0), 节名组, )
- 节名组.枚举循环 ()
- {
- 结果变量.加入成员 (多字节到文本 (节名组.取枚举值 ()))
- }
- 返回 (结果变量)
- }
- #
- }
复制代码
|
|