自动生成代码及数据读取(excel+c++版)

这段时间有时间了,自己写了一个c++代码数据自动生成的工具,附源码(python的)
目录:
createClass : 自动生成模板代码(c++)

  • model 生成模型的存放处
  • template 模板文件(原始文件,py读取的.建议不做修改)
  • config.json 部分配置文件
  • createClass.py 生成c++模型类的python脚本
    createData : 自动生成序列化数据
  • readValue.py 生成zl.data的python脚本
  • writeData.so 读取文件的c++编译的so库.
    test.xlsx : 数据

exeFile是可执行的文件的目录.是有其他文件夹生成的.
-createClass.exe 是生成class类的可执行文件.(model目录下的)
-readValue.exe 是生成数据文件的可执行文件.(zl.data)

使用步骤:
1:填写test.xlsx,
每个sheet是一个类,第二行填类的成员变量,第三行填变量类型, 第十行开始填数据. 所有数据从c列开始,其他地方留作其他用途.暂时没有.
现支持类型:string,int,short,bool,map,vector.
2:修改"configMain.json"
inputFile: xlsx文件名
outputFile:数据输出名.
3:执行exeFile/createClass.exe 在model下生成所有的class文件.
4:执行exeFile/readValue.exe 会生成zl.data.
5:拷贝model文件夹和zl.data到相应的目录下.
6:调用代码
std::string DPath = CCFileUtils::sharedFileUtils()->fullPathForFilename(“zl.data”);
TXData::shareData()->readData(“zl.data”);
就可以直接用TXData::shareData()的所有变量了.

因为要过年回家,就先写这么多,等有空再好好写写使用规范和分析下源码.后面也将增加lua自动生成工具和源码…
下载路径:
https://git.oschina.net/leizhang/serialize_data_c.git
有问题请联系邮箱:674846286@qq.com

附:第一次使用git,试了几次才成功.不知道会不会丢什么东西.

不错,
版主都加亮了

生成C++代码有个很大的缺点就是改表需要变化C++代码,这样没法更新,直接生成2进制文件一定规则,C++里读取用字符串做KEY,map索引是最好的

生成C++代码有个很大的缺点就是改表需要变化C++代码,这样没法更新…
恩.这个欠考虑,我打算好好想想这个如何支持旧版本的c++代码,但我的基本思路是:data里面也存下成员变量名,c++解析的时候,通过变量名存到各自的成员变量下(新的不填,旧的不用的直接剔除).这个功能年后添加上去吧.
有什么好的方法,也可以提出来.

我现在做的工具只要生成data文件,不需要生成代码,代码用的都是同一份,代码是不变的,所以代码不用更新

能给下思路吗?

你的思路我想了想,知道怎么弄的了,数据类似于xml和json格式.但是你那个有个弊端就是,别人在用的时候很难知道数据的情况.我这边直接生成代码,别的开发者很容易的知道数据成员变量.

对的,看成员就需要看表