INI
INI 排序读取
用一篇说明讲清 Ini_Sort 系列的生成、读取、计数和清理流程,适合需要按键或按值遍历整个节内容的场景。
命令用途
Ini_Sort_* 是一组配套命令,不是单条命令各自独立完成工作的结构。
这组命令的核心作用,是把某个 INI 节里的键值先按指定规则排序到内存标识中,再按索引逐项读取节名、键名、值或键值组合。
它适合排行榜、批量配置扫描、按分数排序的名单读取,以及需要先排序再循环处理的数据场景。
命令组
| 命令 | 最小格式 | 一句话用途 |
|---|---|---|
INI_SORT_READ_SECTION_VALUES | <文件路径> <节名> <排序字段> <排序类型> <排序方式> <标识名> <是否保存到文件> | 读取指定节并生成排序结果标识 |
INI_SORT_SECTION_VALUES_COUNT | <标识名> <变量> | 获取排序结果数量 |
INI_SORT_GET_SECTION_STRING | <标识名> <变量> | 读取排序结果对应的节名 |
INI_SORT_GET_IDENT_STRING | <标识名> <索引> <变量> | 读取指定排序项的键名 |
INI_SORT_GET_IDENT_VALUE_STRING | <标识名> <索引> <变量> | 读取指定排序项的键值组合文本 |
INI_SORT_GET_VALUE_STRING | <标识名> <索引> <变量> | 读取指定排序项的字符串值 |
INI_SORT_GET_VALUE_INTEGER | <标识名> <索引> <变量> | 读取指定排序项的整数值 |
INI_SORT_DELETE | <标识名|ALL> | 删除排序结果标识 |
调用顺序
- 先用
INI_SORT_READ_SECTION_VALUES把节内容读进内存,并生成一个排序结果标识。 - 用
INI_SORT_SECTION_VALUES_COUNT拿到结果数量,决定后续循环范围(结果包含节本身,节在列表第一个,数据从索引 1 开始)。 - 根据你要读的是节名、键名、字符串值、整数值还是键值组合,选择对应的
GET命令。 - 用完后执行
INI_SORT_DELETE,避免临时结果一直留在内存里。
如果你把这组命令拆开孤立记忆,很容易在实际脚本里漏掉“先生成结果”或“最后清理标识”这两步。
排序参数说明
| 参数 | 可选值 | 说明 |
|---|---|---|
排序字段 | 0 / 1 | 0 按键排序,1 按值排序 |
排序类型 | 0 / 1 | 0 按字符串排序,1 按整数排序 |
排序方式 | 0 / 1 | 0 升序,1 降序 |
是否保存到文件 | 0 / 1 | 0 不保存文件,1 保存排序后的文件内容 |
最容易出错的地方不是排序方式,而是把字符串值当整数排序,或者把整数值当字符串排序。
常用读取分工
| 需求 | 对应命令 | 说明 |
|---|---|---|
| 拿结果总数 | INI_SORT_SECTION_VALUES_COUNT | 用于决定循环次数 |
| 拿当前结果对应的节名 | INI_SORT_GET_SECTION_STRING | 适合跨节整理或显示来源节名 |
| 拿当前结果对应的键名 | INI_SORT_GET_IDENT_STRING | 适合知道是谁排在当前索引 |
| 拿字符串值 | INI_SORT_GET_VALUE_STRING | 结果应写入 S 或 A 变量 |
| 拿整数值 | INI_SORT_GET_VALUE_INTEGER | 结果应写入 P、G、D、M 或 H 变量 |
| 一次拿键和值的组合文本 | INI_SORT_GET_IDENT_VALUE_STRING | 适合直接显示或拼接输出 |
示例
基础用法
#ACT
INI_SORT_READ_SECTION_VALUES .\Rank.ini Warrior 1 1 1 排行结果 0
INI_SORT_SECTION_VALUES_COUNT 排行结果 M10
INI_SORT_GET_IDENT_STRING 排行结果 1 S10
INI_SORT_GET_VALUE_INTEGER 排行结果 1 M11
这段写法会把 Rank.ini 中 Warrior 节的内容按整数值降序整理到 排行结果,再读取第一项的键名和数值。
常见变体
#ACT
INI_SORT_READ_SECTION_VALUES .\Quest.ini Daily 0 0 0 任务清单 0
INI_SORT_GET_IDENT_VALUE_STRING 任务清单 0 S20
INI_SORT_DELETE 任务清单
这类写法适合先按键名字典序读取任务配置,再把某一项的键值组合文本直接取出来使用。
注意事项
Ini_Sort_*是文档里的系列速查名,实际执行时仍然使用各自的大写命令,例如INI_SORT_READ_SECTION_VALUES、INI_SORT_GET_VALUE_INTEGER。- 读取字符串值时使用
S/A变量,读取整数值时使用P/G/D/M/H变量。 - 如果你只想读单个键值,不需要排序和逐项遍历,通常应回到
Ini_Read_String或Ini_Read_Integer。 - 排序结果属于内存中的临时标识,用完后建议及时
INI_SORT_DELETE。
相关资源
- 蓝海数据库编辑器 — 字段含义中文注释,新手改库不迷路
