网游服务器csv配置设计

来源:互联网 发布:小米note3网络异常 编辑:程序博客网 时间:2024/05/01 18:54
网游服务器csv配置设计

(金庆的专栏 2017.2)

巨人网络Lua手游服务器中csv配置系统的设计

配置文件为 csv 格式。
csv文件全部放置于 csv/ 目录。
csv/可以有子目录。
csv目录下所有csv文件可以热更新。

策划数据也会导出到csv.
csv编码为utf8带BOM。
如果不带BOM,excel打开中文显示乱码。

xlsx批量转为utf8的csv
http://blog.csdn.net/jq0123/article/details/49512877

要求csv解析器允许多行字段,允许双引号,忽略BOM。
csv解析采用:https://github.com/jinq0123/csv_parser_RFC4180

csv按以下规范建立:
第1行:字段说明,可以多行,可以中文,仅供注释用。
       说明放第1行的好处是:多行说明不影响下面的数据显示,征途的csv也是说明在先。
第2行:字段名,英文,区分大小写,尽量不用特殊字符。
       同一表内各字段名必须不同。
       建议全部小写,用下划线连接单词,如"server_type", "equip_id".
第3行:类型,有3种:string, int, float, 缺省为string, 无法识别也按string处理。
       int, float数据缺省值0, 解析有错时也按0处理。

所有csv加载后,通过以下接口查询

* 获取表格 get_table("test/test.csv") -> csv/test/test.csv
* 取全部记录 table.get_all_records()
* 按索引取记录(可能多个)
    + 取第1个 table.get_record("field1", val1, "field2", val2)
    + 取多个 table.get_records("field1", val1, "field2", val2)
* 按列名取字段
    + record.get_string("field3")
    + record.get_int("field3")
    + record.get_float("field3")
* 自动索引,首次查询建立索引
* 索引可以是多列组合


0 0
原创粉丝点击