【仓颉三方库】 数据解析——ini4cj

简介

INI 文件是一种无固定标准格式的配置文件。它以简单的文字与简单的结构组成,常常使用在 Windows 操作系统上,许多程序也会采用 INI 文件做为配置文件使用。Windows 操作系统后来以注册表的形式取代了 INI 文件。INI 文件的命名来源于英文"初始(Initial)"的前三个字符,正与它的用途 ------ 初始化程序相对应。

特性

  • 🚀 简洁且归一化的接口
  • 🚀 支持字符串、整数、长整数、浮点、布尔
  • 💪 整数溢出检查
  • 🎧 支持多行
  • 🌏 输出 DataModel(待实现)

路线

架构

架构图:

  • section 解析
  • 左值 key 解析
  • 右值 value 解析
  • 输出 DataModel

源码目录

bash 复制代码
.
├── doc
│   ├── assets
│   ├── cjcov
│   ├── design.md
│   └── feature_api.md
├── README.md
├── src
│   ├── IniDataModel.cj
│   ├── IniParser.cj
│   └── IniValue.cj
└── test
    ├── HLT
    ├── LLT
    └── UT
  • doc 存放库的设计文档、提案、库的使用文档、LLT 用例覆盖率
  • src 库源码目录
  • test 存放测试用例,包括 HLT 用例、LLT 用例和 UT 用例

接口说明

详情见API

使用说明

编译

复制代码
cjpm build

功能示例

ini文件:

ini 复制代码
[section1]
aval=false
bval=-123456789
cval=10
dval=1111.111111
eval=-123456.7890
fval="hello world"

[section2]
aval=false
bval=-123456789
cval=10
dval=1111.111111
eval=-123456.7890
fval="hello world"

[section3]
aval=false
bval=-123456789
cval=10
dval=1111.111111
eval=-123456.7890
fval="hello world"

DD一下: 欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。

erlang 复制代码
`欢迎大家关注公众号<程序猿百晓生>,可以了解到以下知识点。`
1.OpenHarmony开发基础
2.OpenHarmony北向开发环境搭建
3.鸿蒙南向开发环境的搭建
4.鸿蒙生态应用开发白皮书V2.0 & V3.0
5.鸿蒙开发面试真题(含参考答案) 
6.TypeScript入门学习手册
7.OpenHarmony 经典面试题(含参考答案)
8.OpenHarmony设备开发入门【最新版】
9.沉浸式剖析OpenHarmony源代码
10.系统定制指南
11.【OpenHarmony】Uboot 驱动加载流程
12.OpenHarmony构建系统--GN与子系统、部件、模块详解
13.ohos开机init启动流程
14.鸿蒙版性能优化指南
.......

parse 接口调用:

将下面测试文件main.cj放到src下。

css 复制代码
import ini4cj.*
main(): Unit {
     let parser:IniParser = IniParser("test_multiple_sections_001.ini")
     let ini:IniFile = parser.parse()
     println(ini.toString())
}

运行结果:

ini 复制代码
[section1]
aval=false
bval=-123456789
cval=10
dval=1111.111111
eval=-123456.7890
fval="hello world"

[section2]
aval=false
bval=-123456789
cval=10
dval=1111.111111
eval=-123456.7890
fval="hello world"

[section3]
aval=false
bval=-123456789
cval=10
dval=1111.111111
eval=-123456.7890
fval="hello world"
jval=9111111111111111110

获取 value 接口调用:

将下面测试文件main.cj放到src下。

ini 复制代码
import ini4cj.*
main(): Unit {
     let parser:IniParser = IniParser("test_multiple_sections_001.ini")
     let ini:IniFile = parser.parse()

     let aval: IniValue = ini.get("section1").get("aval")
     let bval: IniValue = ini.get("section1").get("bval")
     let cval: IniValue = ini.get("section1").get("cval")
     let dval: IniValue = ini.get("section1").get("dval")
     let eval: IniValue = ini.get("section1").get("eval")
     let fval: IniValue = ini.get("section1").get("fval")
     let a: Bool = parser.getBoolean(aval)
     let b: Int32 = parser.getInt(bval)
     let c: Int32 = parser.getInt(cval)
     let d: Float64 = parser.getDouble(dval)
     let e: Float64 = parser.getDouble(eval)
     let f: String = parser.getString(fval)
     println("a=${a}")
     println("b=${b}")
     println("c=${c}")
     println("d=${d}")
     println("e=${e}")
     println("f=${f}")
}

运行结果:

ini 复制代码
a=false
b=-123456789
c=10
d=1111.111111
e=-123456.789000
f="hello world"

约束与限制

在下述版本验证通过:

yaml 复制代码
Cangjie Version: 0.53.4
相关推荐
l1340620823533 分钟前
鸿蒙实战:RDB 数据库设计与 DatabaseService
数据库·华为·harmonyos·鸿蒙系统
ZZZMMM.zip1 小时前
数据侦探社-数据趋势分析的HarmonyOS开发实践
人工智能·华为·harmonyos·鸿蒙·鸿蒙系统
星释2 小时前
鸿蒙智能体开发实战:34.鸿蒙壁纸大师 - 提示词工程与优化
android·华为·harmonyos·鸿蒙
ujainu小3 小时前
并发性能测试:心跳监测与主线程阻塞分析
华为·性能优化·harmonyos
●VON4 小时前
HarmonyKit | 鸿蒙开发:项目目录结构与多模块架构最佳实践
华为·架构·单元测试·harmonyos·鸿蒙
tyqtyq225 小时前
营养餐单规划:AI 科学饮食规划系统的鸿蒙实现
人工智能·学习·华为·职场和发展·生活·harmonyos
不才难以繁此生5 小时前
HarmonyOS RDB 索引实战:中式美食搜索和购物清单查询怎么避免扫全表
harmonyos·arkts·arkui·rdb·中式美食·relationalstore
星释5 小时前
鸿蒙智能体开发实战:26.Skill 与插件协同开发
microsoft·华为·ai·harmonyos·鸿蒙·智能体
星释6 小时前
鸿蒙智能体开发实战:32.鸿蒙壁纸大师 - API认证与会话管理
华为·ai·harmonyos·智能体
花开彼岸天~6 小时前
鸿蒙实战:导航栏与顶部栏设计规范 HmTitleBar
华为·harmonyos·鸿蒙系统·设计规范