IT博客汇
  • 首页
  • 精华
  • 技术
  • 设计
  • 资讯
  • 扯淡
  • 权利声明
  • 登录 注册

    网游服务器csv配置设计

    金庆发表于 2017-02-15 08:18:00
    love 0
    网游服务器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")
    * 自动索引,首次查询建立索引
    * 索引可以是多列组合



    金庆 2017-02-15 16:18 发表评论


沪ICP备19023445号-2号
友情链接