csv转其他语言(lua)代码文件
程序员文章站
2024-03-21 14:22:58
...
CsvSerializable 最后有工程链接
csv转其他语言代码文件
- 暂时只支持lua
使用方式
打开cmd输入:
>CsvSerializable.exe -in csv -out ../Assets/Lua/Data/Config -t client -lp Data/Config
>pause
- -in 输入局部路径
- -out 输出局部路径
- -inEnc 输入文件编码方式 默认 gb2312
- -outEnc 输出文件编码 默认 utf-8
- -t 目标: client|server , 不写默认全部输出
- -lp lua局部路径
csv文件格式
示例
#头注释 | ||||
---|---|---|---|---|
#头注释 | 可以没有 | 也可以多行 | ||
server | client | none | ||
id | name | [email protected]/person | des | [email protected]:game/[email protected]:game/personType |
int | string | list:int | string | dic:int-int |
ID | 名字 | 英雄名 | 英雄名备注 | 英雄类型 |
10001 | lowy | 2023丨2024 | 阿里斯 | 2023:1丨2024:2 |
第一列必须是id列,名字为id
首部支持多行头注释
- 每行以
#
开头 - 直至开头不是
#
为止,都会认为是头注释(配置文件注释)
第一行为目标行
- 目标行只允许
client|server|none
或置空 - client和server用来分割表输出,置空则都会输出
- none从不输出,用作策划备注(作为enum描述时,会输出为注释)
- id不能为none
- id若是client或server,其他列必须相同或为none或置空
第二行为字段名
- 首先第一列必须是id
- 字段名只能是字母数字,不能使用下划线
_
及其他标识符 - 字段类型为int时,可引用其他文件
[email protected]/person
- 表示这个personId映射到输入文件夹中的game文件夹中的person.csv配置中的id
- 此时会检查personId是否合理
- 支持类型中有dic字典类型,所以字典类型在使用时
[email protected]:game/[email protected]:game/personType
- key和value都是可选的
第三行为字段类型
- 字段支持
int float bool string list dic
- id列必须为int
- list使用冒号指定类型
list:int
- dic字典使用冒号指定类型key-value
dic:string-int
第四行为注释
- 没有明确限制
内容格式
- 数组内容分割使用
|
,如多个id:1022|1023|1024
- 字典内容分割使用
|
,KeyValue使用:
,如id2count:1022:1|1023:3|1024:7
- 转义字符
-
\,",|,:
>>>四个需要转义字符>>>\\,\",\|,\:
- 其他任意字符都可以被转义,如
\h\e\l\l\o
=hello
- 所以如果不确定字符是否可用,可以直接使用
\?
,肯定会没问题
-
git路径:git工程
上一篇: 链表---C实现(带头节点)
下一篇: c++ primer 笔记第八章IO库