一种数据配置及加载的方法及装置的制造方法

文档序号:10555450阅读:345来源:国知局
一种数据配置及加载的方法及装置的制造方法
【专利摘要】本发明公开了一种数据配置及加载的方法及装置,属于数据处理领域。该方法包括:将预设格式数据写入客户端与服务器中;解析EXCEL源配置文件,将EXCEL文件存储为数据结构;根据写入的预设格式数据及解析的EXCEL的源配置文件,生成客户端及服务器数据;将生成的客户端及服务器数据加载并保存至内存。本发明通过Excel表格自动生成客户端和服务端的代码和数据文件,分别给客户端和服务器加载,并且该文件是本工具自行定义的二进制压缩格式,比一般文件小,读写速度快,效率得以提升,而且由于客户端和服务端用的是同一份Excel源数据解析出来的数据,保证客户端和服务器端的数据一致性。
【专利说明】
一种数据配置及加载的方法及装置
技术领域
[0001 ]本发明属于数据处理领域,具体涉及数据配置及加载的方法及装置。
【背景技术】
[0002] 网络游戏简称"网游",又称"在线游戏"。是指以互联网为传输媒介,以游戏运营商 服务器和用户计算机为处理终端,以游戏客户端软件为信息交互窗口的旨在实现娱乐、休 闲、交流和取得虚拟成就的具有可持续性的个体性多人在线游戏。
[0003] 随着网络游戏开发的日益盛行,大型联网游戏的交互性和粘性的提高,对游戏系 统的复杂度要求越来越高,随着游戏系统的增多,每个系统都需要设计数值体系。传统的方 式是针对每一个系统设计不同的数值系统。
[0004] 游戏系统的复杂和繁多必然对数据的要求提高,传统的方式是针对每一个系统设 计不同的数值系统,游戏开发人员根据提供的数值系统,客户端和服务器端分别设计各种 的实现方式,需要客户端和服务器端的开发人员共同商定定义接口,还需要经过复杂的调 试测试。这样既浪费时间,容错率又低。因此,经常因为数据的联调浪费时间影响整个项目 的进度,从而失去市场的先机。

【发明内容】

[0005] 为了解决现有技术中开发人员在客户端和服务器端中定义接口及调试中,浪费时 间,容错率低且效率低的问题。本发明实施例提供了一种数据配置及加载的方法及装置。所 述技术方案如下:
[0006] 第一方面,一种数据配置及加载的方法,该方法包括:
[0007] 将预设格式数据写入客户端与服务器中;
[0008] 解析EXCEL源配置文件,将EXCEL文件存储为数据结构;
[0009] 根据写入的预设格式数据及解析的EXCEL的源配置文件,生成客户端及服务器数 据;
[0010] 将生成的客户端及服务器数据加载并保存至内存。
[0011]具体的,解析EXCEL源配置文件,将EXCEL文件存储为数据结构包括:
[0012] 读取类库中EXCEL文件;
[0013]将EXCEL文件存储为数据结构,其中,第一列存储数据结构的变量名;从第二列起 作为变量名的实例数据。
[0014] 具体的,生成客户端及服务器数据包括:客户端数据结构体、客户端二进制数据、 服务器数据结构体及服务器二进制数据。
[0015] 其中,客户端数据结构体通过所述解析EXCEL文件对应的头文件,拷贝至客户端工 程代码结构中编译。
[0016] 第二方面,一种数据配置及加载的装置,该装置包括:
[0017]数据读写模块,将预设格式数据写入客户端与服务器中;
[0018] 数据解析模块,解析EXCEL源配置文件,将EXCEL文件存储为数据结构;
[0019] 数据生成模块,根据写入的预设格式数据及解析的EXCEL的源配置文件,生成客户 端及服务器数据;
[0020] 数据加载模块,将生成的客户端及服务器数据加载并保存至内存。
[0021 ]具体的,数据解析模块包括:
[0022]文件读取单元,读取类库中EXCEL文件;
[0023] 数据存储单元,将EXCEL文件存储为数据结构,其中,第一列存储数据结构的变量 名;从第二列起作为变量名的实例数据。
[0024] 具体的,生成客户端及服务器数据包括:客户端数据结构体、客户端二进制数据、 服务器数据结构体及服务器二进制数据。
[0025] 其中,客户端数据结构体通过所述解析EXCEL文件对应的头文件,拷贝至客户端工 程代码结构中编译。
[0026] 本发明通过Excel表格自动生成客户端和服务端的代码和数据文件,分别给客户 端和服务器加载,并且该文件是本工具自行定义的二进制压缩格式,比一般文件小,读写速 度快,效率得以提升,而且由于客户端和服务端用的是同一份Excel源数据解析出来的数 据,保证客户端和服务器端的数据一致性。
【附图说明】
[0027] 为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使 用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于 本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他 的附图。
[0028] 图1是本发明实施例提供的一种数据配置及加载的方法流程图;
[0029] 图2是本发明实施例提供的一种数据配置及加载的结构示意图。
【具体实施方式】
[0030] 为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方 式作进一步地详细描述。
[0031] 图1是本发明实施例提供的一种数据配置及加载的方法流程,具体包括:
[0032] SlOl将预设格式数据写入客户端与服务器中;
[0033]其中,自定义的数据格式: struct cfgDataf string modulename; int field count; int record_count;
[0034] vector<cfgField> fields; int size; int ptr; char* data; V
[0035] 通过提供该格式数据的读写方法,把该格式数据写进客户端和服务器需要的二进 制文件中。
[0036] S102解析EXCEL源配置文件,将EXCEL文件存储为数据结构;
[0037]具体的,解析EXCEL源配置文件,将EXCEL文件存储为数据结构包括:
[0038] 读取类库中EXCEL文件;
[0039] Trimport mC !/Program Files (x86)/Common Files/microsoft shai ed /OFFICE 15/MSO.DLL!,\ renamcf RCi Bn ,nMsoRGB(,) \ renameC^SearchPalh^^MsoSearchPalh") \ TenamecOocumentpropeitieslVtMsoDocumentProperties n) #import " C:/Program Files (x86)/Common Files/Microsoft Shared/VBA/VBA6/VBE6EXTOLB" #import 'T);/TiOgram Files (x86)/MicrosoftOffice/〇fficel5/FXCF.L,EXR!, \ rename( ,TDiaIogBoxn, ifExcelDialogBoxli ) \ renaine( "RGB", ,rExcelRGB!, ) \ rename( "CopyFile' nExcelCopyFiIen ) '、 rename( 'lReplaceTextlf, ^ExcelRepiaceText'' ) \ exclude( "IFonLn7 ''IPicuire" ) no_duul_imeriaces
[0040] 将EXCEL文件存储为数据结构,其中,第一列存储数据结构的变量名;从第二列起 作为变量名的实例数据。
[0041 ] 该工具是运行在windows平台的,直接找微软的Microsoft Off ice办公套件的 EXCEL.EXE提供的类库,读取Exce文件,把Excel表的表名读取出来存储为一个数据结构的 名称,第一列的的名称存储为这个数据结构的成员的变量名,从第二列读出来的数据作为 各个成员变量的实例数据。
[0042] S103根据写入的预设格式数据及解析的EXCEL的源配置文件,生成客户端及服务 器数据;
[0043] 具体的,生成客户端及服务器数据包括:客户端数据结构体、客户端二进制数据、 服务器数据结构体及服务器二进制数据。
[0044] 其中,客户端数据结构体通过所述解析EXCEL文件对应的头文件,拷贝至客户端工 程代码结构中编译。
[0045]生成客户端数据结构体C++代码,根据解析的EXCEL数据,往db.h C++头文件里面 写入代码,每一个EXCEl文件都会生成一个结构体数据类型的定义代码,表名读取出来存储 为一个数据结构的名称,第一列的的名称存储为这个数据结构的成员的变量名,第一列变 量名称配置:Name: type,解析出":"前面的是变量名称,后面的是变量的数据类型,类型都 是C++的基本数据类型,int, std: : stirng,bool等等。并且自动生成该变量的get和set方 法,这些步骤都是由工具完成,不需要开发人员手动去写这些代码,既提高了效率又加强了 准确度。每一个Excel表格解析完把写好的db.h C++头文件拷贝到客户端工程代码结构中 可以直接编译通过。
[0046]从第二列读出来的数据作为各个成员变量的实例数据,按照数据的基本类型存储 并写到文件中,保存为excelname.bin文件,并拷贝到客户端的资源文件夹中用于读取加 载。
[0047]同客户端类似,解析Excel生成Erlang相应的数据结构的Erlang源代码,并将文件 拷贝到服务器端相应的文件夹中,保存为.erl文件。
[0048]同客户端类似,解析Excel生成Erlang相应的数据的Erlang的二进制数据文件,并 将文件拷贝到服务器端相应的文件夹中,保存为.hrl文件。
[0049] 自动生成代码部分,可以根据不同的开发语言生成相应语法的代码。本实施例中 客户端使用的是C++,服务器使用的是Erlang,也可以使用其他语言,例如客户端使用java、 C#、Lua,服务器使用Go Iang,C,Py thon等等语言。
[0050] S104将生成的客户端及服务器数据加载并保存至内存。
[0051] cfgData*CCfgFile::load(const char*cfg_file)
[0052] 通用的加载方法,可以在客户端和服务器启动游戏的时候加载这些数据并保存到 内存中给游戏使用。
[0053]图2是本发明实施例提供的一种数据配置及加载的结构示意,具体包括:
[0054] 21数据读写模块,将预设格式数据写入客户端与服务器中;
[0055]其中,自定义的数据格式: struct cfgDataj string module_name; int field _CQunt; int record_count;
[0056] vector<cfgField> fields; int size; int ptr, char* data; };
[0057] 通过提供该格式数据的读写方法,把该格式数据写进客户端和服务器需要的二进 制文件中。
[0058] 22数据解析模块,解析EXCEL源配置文件,将EXCEL文件存储为数据结构;
[0059]具体的,数据解析模块包括:
[0060]文件读取单元221,读取类库中EXCEL文件;
[0061] #impoit ,,C:/Prograra Files (x86)/Comraon Filcs/microsoft shared /OFFICE 15/MSO,DLL"\ renameC'RGB'V'MsoRGB") \ rename("SearcliPath","MsoSearchPath") \ renaine("DocumentProperties".'!MsoDocumentProperties") #inip〇n. "C !/Program Files (x86)/C〇mmon Files/MiciOSoft Shared/\TBA./YBA6./'VBC6nXT.OLB" #import "D:/Prograin Files (x86VMicrosoft Officc/OfflcclS/EXCEL.EXE" \ rename( lOialogBox VExce丨Dia丨OgRoxn )\ rename! "RGB", "BxccIRGB") \ rename( "CopyFile", "ExcelCopyFile") \
[0062] rename! "RepIaceText", "ExcelReplaceText") \ exclude( "IFont", ''!Picture" ) no_dual_interfaces
[0063] 数据存储单元222,将EXCEL文件存储为数据结构,其中,第一列存储数据结构的变 量名;从第二列起作为变量名的实例数据。
[0064] 该工具是运行在windows平台的,直接找微软的Microsoft Office办公套件的 EXCEL.EXE提供的类库,读取Exce文件,把Excel表的表名读取出来存储为一个数据结构的 名称,第一列的的名称存储为这个数据结构的成员的变量名,从第二列读出来的数据作为 各个成员变量的实例数据。
[0065] 23数据生成模块,根据写入的预设格式数据及解析的EXCEL的源配置文件,生成客 户端及服务器数据;
[0066] 具体的,生成客户端及服务器数据包括:客户端数据结构体、客户端二进制数据、 服务器数据结构体及服务器二进制数据。
[0067]其中,客户端数据结构体通过所述解析EXCEL文件对应的头文件,拷贝至客户端工 程代码结构中编译。
[0068]生成客户端数据结构体C++代码,根据解析的EXCEL数据,往db.h C++头文件里面 写入代码,每一个EXCEl文件都会生成一个结构体数据类型的定义代码,表名读取出来存储 为一个数据结构的名称,第一列的的名称存储为这个数据结构的成员的变量名,第一列变 量名称配置:Name: type,解析出":"前面的是变量名称,后面的是变量的数据类型,类型都 是C++的基本数据类型,int, std: : stirng,bool等等。并且自动生成该变量的get和set方 法,这些步骤都是由工具完成,不需要开发人员手动去写这些代码,既提高了效率又加强了 准确度。每一个Excel表格解析完把写好的db.h C++头文件拷贝到客户端工程代码结构中 可以直接编译通过。
[0069]从第二列读出来的数据作为各个成员变量的实例数据,按照数据的基本类型存储 并写到文件中,保存为excelname.bin文件,并拷贝到客户端的资源文件夹中用于读取加 载。
[0070]同客户端类似,解析Excel生成Erlang相应的数据结构的Erlang源代码,并将文件 拷贝到服务器端相应的文件夹中,保存为.erl文件。
[007?]同客户端类似,解析Excel生成Erlang相应的数据的Erlang的二进制数据文件,并 将文件拷贝到服务器端相应的文件夹中,保存为.hrl文件。
[0072]自动生成代码部分,可以根据不同的开发语言生成相应语法的代码。本实施例中 客户端使用的是C++,服务器使用的是Erlang,也可以使用其他语言,例如客户端使用java、 C#、Lua,服务器使用Go Iang,C,Py thon等等语言。
[0073] 24数据加载模块,将生成的客户端及服务器数据加载并保存至内存。
[0074]其中,客户端数据结构体通过所述解析EXCEL文件对应的头文件,拷贝至客户端工 程代码结构中编译。
[0075] cfgData*CCfgFile::load(const char*cfg_file)
[0076] 通用的加载方法,可以在客户端和服务器启动游戏的时候加载这些数据并保存到 内存中给游戏使用。
[0077] 本发明实施例通过Excel表格自动生成客户端和服务端的代码和数据文件,分别 给客户端和服务器加载,并且该文件是本工具自行定义的二进制压缩格式,比一般文件小, 读写速度快,效率得以提升,而且由于客户端和服务端用的是同一份Excel源数据解析出来 的数据,保证客户端和服务器端的数据一致性。
[0078]本领域普通技术人员可以理解实现上述实施例的全部或部分步骤可以通过硬件 来完成,也可以通过程序来指令相关的硬件完成,所述的程序可以存储于一种计算机可读 存储介质中,上述提到的存储介质可以是只读存储器,磁盘或光盘等。
[0079]以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和 原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
【主权项】
1. 一种数据配置及加载的方法,其特征在于,所述方法包括: 将预设格式数据写入客户端与服务器中; 解析EXCEL源配置文件,将EXCEL文件存储为数据结构; 根据所述写入的预设格式数据及所述解析的EXCEL的源配置文件,生成客户端及服务 器数据; 将所述生成的客户端及服务器数据加载并保存至内存。2. 根据权利要求1所述的方法,其特征在于,所述解析EXCEL源配置文件,将EXCEL文件 存储为数据结构,具体包括: 读取类库中EXCEL文件; 将所述EXCEL文件存储为数据结构,其中,第一列存储所述数据结构的变量名;从第二 列起作为所述变量名的实例数据。3. 根据权利要求1所述的方法,其特征在于,所述生成客户端及服务器数据包括:客户 端数据结构体、客户端二进制数据、服务器数据结构体及服务器二进制数据。4. 根据权利要求3所述的方法,其特征在于,所述客户端数据结构体通过所述解析 EXCEL文件对应的头文件,拷贝至客户端工程代码结构中编译。5. -种数据配置及加载的装置,其特征在于,所述装置包括: 数据读写模块,将预设格式数据写入客户端与服务器中; 数据解析模块,解析EXCEL源配置文件,将EXCEL文件存储为数据结构; 数据生成模块,根据所述写入的预设格式数据及所述解析的EXCEL的源配置文件,生成 客户端及服务器数据; 数据加载模块,将所述生成的客户端及服务器数据加载并保存至内存。6. 根据权利要求5所述的装置,其特征在于,所述数据解析模块具体包括: 文件读取单元,读取类库中EXCEL文件; 数据存储单元,将所述EXCEL文件存储为数据结构,其中,第一列存储所述数据结构的 变量名;从第二列起作为所述变量名的实例数据。7. 根据权利要求5所述的装置,其特征在于,所述生成客户端及服务器数据包括:客户 端数据结构体、客户端二进制数据、服务器数据结构体及服务器二进制数据。8. 根据权利要求7所述的装置,其特征在于,所述客户端数据结构体通过所述解析 EXCEL文件对应的头文件,拷贝至客户端工程代码结构中编译。
【文档编号】H04L12/24GK105915389SQ201610384280
【公开日】2016年8月31日
【申请日】2016年6月2日
【发明人】顾佩华
【申请人】苏州乐麟无线信息科技有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1