朕的 发表于 前天 00:40

PIV模块:配置文件操作类.取文本键值(),前后空格会消失

PIV模块:配置文件操作类.取文本键值(),保存后,再次打开,获取到的文本键值,前后空格会消失

Xelloss0618 发表于 前天 01:36

simpleini这个库本身就会删首尾空吧,另外调用系统API的“读配置项”也是一样删首尾空的

kingsoft 发表于 前天 11:19

你都写配置项了为啥还要首尾空格,用其他字符替代岂不更好更安全?
空格多麻烦!

朕的 发表于 前天 13:24

Xelloss0618 发表于 2026-1-19 01:36
simpleini这个库本身就会删首尾空吧,另外调用系统API的“读配置项”也是一样删首尾空的 ...

好的,我想办法优化一下吧,把首尾空格替换个别的标识符。不然编辑框输入的文本会少首尾空

朕的 发表于 前天 13:58

Xelloss0618 发表于 2026-1-19 01:36
simpleini这个库本身就会删首尾空吧,另外调用系统API的“读配置项”也是一样删首尾空的 ...

临时写了个扩展

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

类 _配置文件操作类_PIV扩展 <公开 基础类 = 配置文件操作类 折叠>
{
    常量 替换符_换行辨别符 <公开 类型 = 文本型 值 = "&*hhf*&">
    常量 替换符__空格 <公开 类型 = 文本型 值 = "&*kgj*&">

    方法 _取文本键值_优化换行空格 <公开 类型 = 文本型 注释 = "获取指定键的文本型键值." 注释 = "即使\"是否允许重复键名\"为真,也只会返回找到的第一个值." "">
    参数 节名 <类型 = 文本型 注释 = "所欲获取键值的节名称">
    参数 键名 <类型 = 文本型 注释 = "所欲获取键值的键名称">
    参数 默认值 <类型 = 文本型 注释 = "如果所指定键名不存在,将返回此默认值." @默认值 = "">
    {

      变量 键值内容 <类型 = 文本型>
      键值内容 = 本对象.取文本键值 (节名, 键名, 默认值)
      子文本替换 (键值内容, 替换符_换行辨别符, "\r\n", , , )
      子文本替换 (键值内容, 替换符__空格, " ", , , )
      返回 (键值内容)

    }

    方法 _置文本键值_优化换行空格 <公开 类型 = 整数 注释 = "添加或更新一个节或文本型键值." 注释 = "当\"是否允许重复键名\"为真时,始终为添加键值."
            返回值注释 = "返回值大于等于0表示成功,小于0表示失败." 折叠 "">
    参数 节名 <类型 = 文本型 注释 = "所欲添加或更新的节">
    参数 键名 <类型 = 文本型 注释 = "所欲添加或更新的键,留空表示创建一个空节." @默认值 = 空对象>
    参数 键值 <类型 = 文本型 注释 = "所欲设置的键值,留空表示创建一个空节." @默认值 = 空对象>
    参数 注释 <类型 = 文本型 注释 = "设置节或键的注释,如果键名为空则是设置节的注释;" 注释 = "可空,注释文本必须以字符\';\'或\'#\'开头;"
            注释 = "仅在第一次创建新的节或键名时才会写入注释." 折叠2 @默认值 = 空对象>
    参数 强制替换 <类型 = 逻辑型 注释 = "\"是否允许重复键名\"为真时,是否强制将同一个键名的" 注释 = "所有键值都替换成新值." @默认值 = 假>
    {
      变量 键值内容 <类型 = 文本型>
      键值内容 = 键值
      子文本替换 (键值内容, "\r\n", 替换符_换行辨别符, , , )
      子文本替换 (键值内容, " ", 替换符__空格, , , )
      返回 (本对象.置文本键值 (节名, 键名, 键值内容, 注释, 强制替换))
    }
}
页: [1]
查看完整版本: PIV模块:配置文件操作类.取文本键值(),前后空格会消失