System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及计算机,具体而言,涉及一种二进制流解析方法、装置、电子设备及可读存储介质。
技术介绍
1、大型多人在线游戏中,玩家上线后,需要将保存在数据库中的玩家的各项数据从数据库的对应表中读出,并解析为各种对应的复杂的游戏内存数据,以供服务器程序运行使用。目前,存盘数据库中的数据是每个成员变量数据各自对应一个数据库字段。在游戏数据的读取解析中,在要读取的数据的数据结构为包括多个基本数据类型的数据结构时,需要编写用于读取数据的拼接的sql语句,该方式繁琐、工作量大,并且易错。解析后的赋值过程也有很多重复性的操作,比如,将解析出的数据插入vector、list、set、unordered_set、map或unordered_map等容器中。
技术实现思路
1、本申请实施例提供了一种二进制流解析方法、装置、电子设备及可读存储介质,其能够解决读取、解析游戏存盘数据过程中代码繁琐、易错、工作量大的问题。
2、本申请的实施例可以这样实现:
3、第一方面,本申请实施例提供一种二进制流解析方法,所述方法包括:
4、从数据库中获得待解析二进制流,其中,所述数据库中的单个字段可被解析成一个单一的数据,或者,可被解析成一个包括多个成员变量或多个容器的复杂数据;
5、获得与所述待解析二进制流对应的目标内存数据要求的目标数据类型,其中,所述目标内存数据使用的数据结构为目标数据结构,所述目标数据结构的数据类型为所述目标数据类型;
6、根据所述目标数据类
7、第二方面,本申请实施例提供一种二进制流解析装置,所述装置包括:
8、获得模块,用于从数据库中获得待解析二进制流,其中,所述数据库中的单个字段可被解析成一个单一的数据,或者,可被解析成一个包括多个成员变量或多个容器的复杂数据;
9、解析模块,用于获得与所述待解析二进制流对应的目标内存数据要求的目标数据类型,其中,所述目标内存数据使用的数据结构为目标数据结构,所述目标数据结构的数据类型为所述目标数据类型;
10、所述解析模块,还用于根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据。
11、第三方面,本申请实施例提供一种电子设备,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现前述实施方式所述的二进制流解析方法。
12、第四方面,本申请提供一种可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如前述实施方式所述的二进制流解析方法。
13、本申请实施例提供的二进制流解析方法、装置、电子设备及可读存储介质,从数据库中获得待解析二进制流,并获得与该待解析二进制流对应的目标内存数据要求的目标数据类型,该目标数据类型为该目标内存数据使用的数据结构的数据类型,最后根据该目标数据类型将该待解析二进制流解析为目标内存数据。其中,所述数据库中的单个字段可被解析成一个单一的数据,或者,可被解析成一个包括多个成员变量或多个容器的复杂数据。如此,可解决读取、解析游戏存盘数据过程中代码繁琐、易错、工作量大的问题。
本文档来自技高网...【技术保护点】
1.一种二进制流解析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述目标数据类型为基础类型时,所述根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据,包括:
3.根据权利要求1所述的方法,其特征在于,在所述目标数据类型为包括多个基础类型数据的第一对象时,所述根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据,包括:
4.根据权利要求3所述的方法,其特征在于,在所述目标数据类型为包括多个元素的动态数组或链表容器或set容器或unordered_set容器时,所述根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据,包括:
5.根据权利要求3所述的方法,其特征在于,在所述目标数据类型为包括键值对的map容器或unordered_map容器时,所述根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据,包括:
6.根据权利要求3-5中任意一项所述的方法,其特征在于,第二对象中包括多个基础类型数据及容器数据,在所述目标数据类型为所述第二对象时,所述根据所述目标数
7.一种二进制流解析装置,其特征在于,所述装置包括:
8.根据权利要求7所述的装置,其特征在于,在所述目标数据类型为包括多个基础类型数据的对象时,所述解析模块具体用于:
9.一种电子设备,其特征在于,包括处理器和存储器,所述存储器存储有能够被所述处理器执行的机器可执行指令,所述处理器可执行所述机器可执行指令以实现权利要求1-6中任意一项所述的二进制流解析方法。
10.一种可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1-6中任意一项所述的二进制流解析方法。
...【技术特征摘要】
1.一种二进制流解析方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,在所述目标数据类型为基础类型时,所述根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据,包括:
3.根据权利要求1所述的方法,其特征在于,在所述目标数据类型为包括多个基础类型数据的第一对象时,所述根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据,包括:
4.根据权利要求3所述的方法,其特征在于,在所述目标数据类型为包括多个元素的动态数组或链表容器或set容器或unordered_set容器时,所述根据所述目标数据类型,将所述待解析二进制流解析为目标内存数据,包括:
5.根据权利要求3所述的方法,其特征在于,在所述目标数据类型为包括键值对的map容器或unordered_map容器时,所述根据所述目标数据类型,将所述待解析二进制流...
【专利技术属性】
技术研发人员:杜江,
申请(专利权)人:北京像素软件科技股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。