火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 389|回复: 2
打印 上一主题 下一主题

[视窗] @创世魂 给代码更新 合并 到官方代码

[复制链接]

108

主题

598

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
QQ
跳转到指定楼层
楼主
发表于 2024-4-8 20:06:46 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
刚好用到,而自身又不支持,我就给改了改。你把这个代码 合并进去,给加个参数 : 是否多字节

测试了,没问题。

  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. }
复制代码



专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

35

主题

140

帖子

567

积分

核心用户

Rank: 9Rank: 9Rank: 9

积分
567
沙发
发表于 2024-4-8 23:18:45 | 只看该作者
:噜阿噜
回复

使用道具 举报

108

主题

598

帖子

2093

积分

金牌会员

Rank: 6Rank: 6

积分
2093
QQ
板凳
 楼主| 发表于 2024-4-9 13:06:37 | 只看该作者
配置项  还有其他函数,暂时用不上,不准备搞起了。
那位火友有兴趣可以搞一搞。
专业承接18-98岁xx的心理及生理教育辅导。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2024-5-3 01:10 , Processed in 0.085940 second(s), 18 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表