递归火山软件开发平台

标题: @创世魂 给代码更新 合并 到官方代码 [打印本页]

作者: server    时间: 2024-4-8 20:06
标题: @创世魂 给代码更新 合并 到官方代码
刚好用到,而自身又不支持,我就给改了改。你把这个代码 合并进去,给加个参数 : 是否多字节

测试了,没问题。

  1. <火山程序 类型 = "通常" 版本 = 1 />

  2. 类 配置项 <公开 折叠>
  3. {
  4.     方法 test
  5.     {
  6.         变量 fileini <类型 = 文本型>
  7.         fileini = 取特定目录 (特定目录类型.系统桌面) + "cg.ini"
  8.         变量 index1 <类型 = 整数 值 = 0>
  9.         变量 index2 <类型 = 整数 值 = 0>
  10.         计次循环 (3)
  11.         {
  12.             index2 = 0
  13.             计次循环 (3)
  14.             {
  15.                 配置项.写 (fileini, "aaa" + 到文本 (index1), "name" + 到文本 (index2), "val" + 到文本 (index2))
  16.                 index2 = index2 + 1
  17.             }
  18.             index1 = index1 + 1
  19.         }
  20.         index1 = 0
  21.         计次循环 (3)
  22.         {
  23.             index2 = 0
  24.             计次循环 (3)
  25.             {
  26.                 调试输出 ("aaa" + 到文本 (index1), "name" + 到文本 (index2), 配置项.读 (fileini, "aaa" + 到文本 (index1), "name" + 到文本 (index2)))
  27.                 index2 = index2 + 1
  28.             }
  29.             index1 = index1 + 1
  30.         }

  31.         调试输出 (配置项.取节名 (fileini))

  32.     }

  33.     方法 读 <公开 静态 类型 = 文本型 注释 = "读取并返回所指定配置文件中指定项目的文本内容" 折叠>
  34.     参数 配置文件名 <类型 = 文本型 注释 = "指定配置文件的名称,通常以"ini"作为文件名后缀.">
  35.     参数 节名称 <类型 = 文本型 注释 = "指定欲读入配置项所处节的名称">
  36.     参数 配置项名称 <类型 = 文本型 注释 = "指定欲读入配置项在其节中的名称">
  37.     参数 默认值 <类型 = 文本型 注释 = "如果所指定配置项不存在,将返回此默认值文本." @默认值 = "">
  38.     {
  39.         变量 结果变量 <静态 类型 = 字节集类>
  40.         如果 (文本是否为空 (配置文件名) == 假 && 文本是否为空 (节名称) == 假 && 文本是否为空 (配置项名称) == 假)
  41.         {
  42.             结果变量.分配字节集 (10240, 真)
  43.             @ GetPrivateProfileStringA (GetMbsText (@<节名称>.GetText (), CVolMem (), NULL), GetMbsText (@<配置项名称>.GetText (), CVolMem (), NULL), GetMbsText (@<默认值>.GetText (), CVolMem (), NULL), (LPSTR)@<结果变量>.GetPtr (), @<结果变量>.GetSize (),  GetMbsText (@<配置文件名>.GetText (), CVolMem (), NULL));
  44.         }
  45.         返回 (多字节到文本 (结果变量))
  46.     }

  47.     方法 写 <公开 静态 类型 = 逻辑型 注释 = "  将指定文本内容写入指定配置项中或者删除指定的配置项或节," 注释 = "如果指定配置文件不存在,将会自动创建." 返回值注释 = "返回是否成功"
  48.             折叠 折叠2 @禁止流程检查 = 真>
  49.     参数 配置文件名 <类型 = 文本型 注释 = "指定配置文件的名称,通常以"ini"作为文件名后缀.">
  50.     参数 节名称 <类型 = 文本型 注释 = "指定欲写入配置项所处节的名称">
  51.     参数 配置项名称 <类型 = 文本型 注释 = "指定欲写入配置项在其节中的名称.如果为空对象,则删除指定节及其下的所有配置项." @默认值 = 空对象>
  52.     参数 欲写入值 <类型 = 文本型 注释 = "指定欲写入到指定配置项中的文本,如果为空对象,则删除所指定配置项." @默认值 = 空对象>
  53.     {
  54.         @ return WritePrivateProfileStringA (GetMbsText (@<节名称>.GetText (), CVolMem (), NULL), (@<配置项名称>.IsNullObject () ? NULL : GetMbsText (@<配置项名称>.GetText (), CVolMem (), NULL)), (@<欲写入值>.IsNullObject () ? NULL : GetMbsText (@<欲写入值>.GetText (), CVolMem (), NULL)), GetMbsText (@<配置文件名>.GetText (), CVolMem (), NULL));
  55.     }

  56.     方法 取节名 <公开 静态 类型 = 文本数组类 注释 = "返回指定配置文件中所有已有节名的文本数组" 折叠>
  57.     参数 配置文件名 <类型 = 文本型 注释 = "指定配置文件的名称,通常以"ini"作为文件名后缀.">
  58.     {
  59.         变量 结果变量 <类型 = 文本数组类>
  60.         变量 节名 <类型 = 字节集类>
  61.         变量 节名组 <类型 = 字节集数组类>
  62.         节名.分配字节集 (256 * 1024, 真)
  63.         @ GetPrivateProfileSectionNamesA ((LPSTR)@<节名>.GetPtr (), @<节名>.GetSize (), GetMbsText (@<配置文件名>.GetText (), CVolMem (), NULL));
  64.         节名.删除字节集尾部数据 (节名.寻找字节集 (创建字节集 (0, 0), ))
  65.         分割字节集 (节名, 创建字节集 (0), 节名组, )
  66.         节名组.枚举循环 ()
  67.         {
  68.             结果变量.加入成员 (多字节到文本 (节名组.取枚举值 ()))
  69.         }
  70.         返回 (结果变量)
  71.     }

  72.     #
  73. }
复制代码




作者: a759077146    时间: 2024-4-8 23:18
:噜阿噜
作者: server    时间: 2024-4-9 13:06
配置项  还有其他函数,暂时用不上,不准备搞起了。
那位火友有兴趣可以搞一搞。




欢迎光临 递归火山软件开发平台 (https://bbs.voldp.com/) Powered by Discuz! X3.4