数据转存储方法及装置与流程

文档序号:23628905发布日期:2021-01-12 10:42阅读:183来源:国知局
数据转存储方法及装置与流程

本说明书涉及数据处理技术领域,特别涉及一种数据转存储方法及装置。



背景技术:

随着计算机技术的发展,游戏成为人们日常生活中非常常见的休闲娱乐方式。为了让玩家有更好的游戏体验,工作人员可以通过操作安装有游戏软件的计算设备对游戏的数据进行更新。

现有技术中,可以将游戏的数据存储在第一文件中,例如,第一文件可以为xls格式的文件,即该第二文件可以为excel表。在对游戏的数据进行更新时,若需要使用excel表中某一行的数据,由于计算设备无法直接从excel表中获取到某一行的数据,因此需要获取该行数据所在的excel表中的全部数据,然后从获取的excel表中的全部数据中获取该行数据,进而实现对游戏的数据的更新。

但单个excel表中存储的数据较多,在仅使用excel表中某一行的数据的情况下,获取整张excel表中的数据不仅占用存储空间,而且浪费时间,降低数据更新的效率,进而需要更简单更便捷的方法进行数据存储的操作或者处理,以便于可以提高数据获取的效率,进而提高数据更新的效率。



技术实现要素:

有鉴于此,本说明书实施例提供了一种数据转存储方法。本说明书同时涉及一种数据转存储装置,一种计算设备,以及一种计算机可读存储介质,以解决现有技术中存在的技术缺陷。

根据本说明书实施例的第一方面,提供了一种数据转存储方法,包括:

获取第一文件的至少一个目标数据组中的待转存数据;

将属于同一目标数据组的所述待转存数据存入一个数据块中,得到至少一个转存数据块,其中,所述转存数据块与目标数据组一一对应;

将所述至少一个转存数据块存入第二文件中,并且在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

可选地,所述在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置,包括:

确定所述至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置;

将每个转存数据块的起始存储位置和结束存储位置确定为每个转存数据块在所述第二文件中的存储位置;

在所述第二文件中记录每个转存数据块在所述第二文件中的存储位置。

可选地,所述确定所述至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置,包括:

记录所述至少一个转存数据块中第一转存数据块的起始存储位置,所述第一转存数据块用于存储所述第一文件中第一个进行数据转存储的目标数据组的数据;

根据每个转存数据块存储的数据的数据类型,确定所述至少一个转存数据块中每个转存数据块的存储空间;

基于所述第一转存数据块的起始存储位置和每个转存数据块的存储空间,确定每个转存数据块的结束存储位置和所述至少一个转存数据块中除所述第一转存数据块之外的其他转存数据块的起始存储位置。

可选地,所述确定所述至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置,包括:

记录所述至少一个转存数据块中每个转存数据块的起始存储位置;

根据所述至少一个转存数据块中第二转存数据块存储的数据的数据类型,确定所述第二转存数据块的存储空间,所述第二转存数据块用于存储所述第一文件中最后一个进行数据转存储的目标数据组的数据;

基于所述第二转存数据块的起始存储位置和所述第二转存数据块的存储空间,确定所述第二转存数据块的结束存储位置,并且基于每个转存数据块的起始存储位置,确定所述至少一个转存数据块中除所述第二转存数据块之外的其它转存数据块的结束存储位置。

可选地,若所述第一文件中包括数据名称和/或数据类型,将所述数据名称和/或所述数据类型存储至所述第二文件中。

可选地,所述方法还包括:

接收数据获取请求,所述数据获取请求中包括目标数据组标识,所述目标数据组标识用于指示一个目标数据组;

基于每个转存数据块与目标数据组的对应关系,确定所述目标数据组标识指示的目标数据组对应的转存数据块;

确定所确定的转存数据块在所述第二文件中的存储位置;

从所确定的存储位置处获取数据。

可选地,所述在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系,包括:

在所述第二文件的文件头中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

可选地,所述第二文件为二进制文件。

根据本说明书实施例的第二方面,提供了一种数据转存储装置,包括:

获取模块,用于获取第一文件的至少一个目标数据组中的待转存数据;

第一存储模块,用于将属于同一目标数据组的所述待转存数据存入一个数据块中,得到至少一个转存数据块,其中,所述转存数据块与目标数据组一一对应;

第二存储模块,用于将所述至少一个转存数据块存入第二文件中,并且在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

可选地,所述第二存储模块用于:

确定所述至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置;

将每个转存数据块的起始存储位置和结束存储位置确定为每个转存数据块在所述第二文件中的存储位置;

在所述第二文件中记录每个转存数据块在所述第二文件中的存储位置。

可选地,所述第二存储模块用于:

记录所述至少一个转存数据块中第一转存数据块的起始存储位置,所述第一转存数据块用于存储所述第一文件中第一个进行数据转存储的目标数据组的数据;

根据每个转存数据块存储的数据的数据类型,确定所述至少一个转存数据块中每个转存数据块的存储空间;

基于所述第一转存数据块的起始存储位置和每个转存数据块的存储空间,确定每个转存数据块的结束存储位置和所述至少一个转存数据块中除所述第一转存数据块之外的其他转存数据块的起始存储位置。

可选地,所述第二存储模块用于:

记录所述至少一个转存数据块中每个转存数据块的起始存储位置;

根据所述至少一个转存数据块中第二转存数据块存储的数据的数据类型,确定所述第二转存数据块的存储空间,所述第二转存数据块用于存储所述第一文件中最后一个进行数据转存储的目标数据组的数据;

基于所述第二转存数据块的起始存储位置和所述第二转存数据块的存储空间,确定所述第二转存数据块的结束存储位置,并且基于每个转存数据块的起始存储位置,确定所述至少一个转存数据块中除所述第二转存数据块之外的其它转存数据块的结束存储位置。

可选地,若所述第一文件中包括数据名称和/或数据类型,将所述数据名称和/或所述数据类型存储至所述第二文件中。

可选地,所述装置还包括:

接收模块,用于接收数据获取请求,所述数据获取请求中包括目标数据组标识,所述目标数据组标识用于指示一个目标数据组;

第一确定模块,用于基于每个转存数据块与目标数据组的对应关系,确定所述目标数据组标识指示的目标数据组对应的转存数据块;

第二确定模块,用于确定所确定的转存数据块在所述第二文件中的存储位置;

获取模块,用于从所确定的存储位置处获取数据。

可选地,所述第二存储模块用于:

在所述第二文件的文件头中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

可选地,所述第二文件为二进制文件。

根据本说明书实施例的第三方面,提供了一种计算设备,包括:

存储器和处理器;

所述存储器用于存储计算机可执行指令,所述处理器用于执行所述计算机可执行指令:

获取第一文件的至少一个目标数据组中的待转存数据;

将属于同一目标数据组的所述待转存数据存入一个数据块中,得到至少一个转存数据块,其中,所述转存数据块与目标数据组一一对应;

将所述至少一个转存数据块存入第二文件中,并且在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

根据本说明书实施例的第四方面,提供了一种计算机可读存储介质,其存储有计算机可执行指令,该指令被处理器执行时实现所述数据转存储方法的步骤。

本说明书提供的数据转存储方法,获取第一文件的至少一个目标数据组中的待转存数据,并将属于同一目标数据组的待转存数据存入一个数据块中,得到至少一个转存数据块,且转存数据块与目标数据组一一对应。将至少一个转存数据块存入第二文件中,并且在第二文件中记录至少一个转存数据块在第二文件中的存储位置以及至少一个转存数据块中每个转存数据块与目标数据组的对应关系。如此,在接收到数据获取请求时,计算设备可以根据转存数据块与目标数据组的对应关系,确定需要获取的数据所在的转存数据块,并且仅从存储位置处获取该确定的转存数据块,而不需要将第二文件中的数据全部获取,由于一个转存数据块的存储空间较小,因此降低了存储空间的占用量,提高了获取数据的效率,进而提高了数据更新的效率。

附图说明

图1是本说明书一实施例提供的一种数据转存储方法的流程图;

图2a是本说明书一实施例提供的一种第一文件的示意图;

图2b是本说明书一实施例提供的一种第二文件的数据存储的示意图;

图3是本说明书一实施例提供的一种数据存储方法应用于游戏配置数据的流程图;

图4是本说明书一实施例提供的一种数据转存储装置的结构示意图;

图5是本说明书一实施例提供的一种计算设备的结构框图。

具体实施方式

在下面的描述中阐述了很多具体细节以便于充分理解本说明书。但是本说明书能够以很多不同于在此描述的其它方式来实施,本领域技术人员可以在不违背本说明书内涵的情况下做类似推广,因此本说明书不受下面公开的具体实施的限制。

在本说明书一个或多个实施例中使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本说明书一个或多个实施例。在本说明书一个或多个实施例和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本说明书一个或多个实施例中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。

应当理解,尽管在本说明书一个或多个实施例中可能采用术语第一、第二等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本说明书一个或多个实施例范围的情况下,第一也可以被称为第二,类似地,第二也可以被称为第一。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。

首先,对本说明书一个或多个实施例涉及的名词术语进行解释。

数据块:数据块也称为存储块,用于存储数据。

在本说明书中,提供了一种数据转存储方法,本说明书同时涉及一种数据转存储装置,一种计算设备,以及一种计算机可读存储介质,在下面的实施例中逐一进行详细说明。

图1示出了本说明书一实施例提供的一种数据转存储方法的流程图,具体包括以下步骤:

步骤102:获取第一文件的至少一个目标数据组中的待转存数据。

其中,第一文件的文件格式可以为xls格式、xml格式、txt格式、csv格式等。例如,该第一文件可以为excel表、txt文本文件、csv文本文件等。

在本说明书实施例中,以第一文件为excel表为例,对本说明书提供的数据存储方法进行说明。

在一些实施例中,目标数据组可以为第一文件中用于存储数据的组。作为一种示例,若第一文件为excel表,目标数据组可以包括一列数据或包括一行数据。例如,参见图2a,若第一文件为excel表,且excel表中第一行存储有数据的数据名称,第二行存储有数据的数据类型,第三行和第四行存储有数据,则目标数据组为第三行和/或第四行。

作为一种示例,若第一文件为txt文本文件,目标数据组可以以制表符做分割。

作为一种示例,计算设备可以对第一文件中的数据进行解析,确定每一个数据组存储的是否为数据,并将存储数据的数据组确定为目标数据组。

作为另一种示例,目标数据组可以由用户根据实际需求进行设置。也就是说,用户可以根据实际需求自行选择转存储第一文件中哪些数据组的数据,操作方式更加灵活。

在一些实施例中,至少一个目标数据组的数量可以为一个或多个,且至少一个目标数据组可以为第一文件中的所有组。

在一些实施例中,待转存数据为第一文件中需要重新存储的数据。继续上述举例,参见图2a,若目标数据组为第一文件中的第三行和第四行,说明需要将第三行的数据和第四行的数据均重新存储,则待转存数据为第三行存储的所有数据和第四行存储的所有数据。

作为一种示例,可以将第一文件中的所有数据加载出来,对至少一个目标数据组中的待转存数据进行标记,该标记与待转存数据所属的目标数据组一一对应,且同一个目标数据组中的待转存数据的标记相同,不同的目标数据组中的待转存数据的标记彼此不同。因此,可以基于该标记从加载出来的所有数据中获取至少一个目标数据组中的待转存数据。

步骤104:将属于同一目标数据组的待转存数据存入一个数据块中,得到至少一个转存数据块,其中,转存数据块与目标数据组一一对应。

其中,第二文件可以为文本文件,也可以为二进制文件。在第二文件为二进制文件的情况下,需要将至少一个目标数据组的待转存数据转换成二进制形式的数据。

其中,转存数据块用于存储目标数据组的待转存数据,且转存数据块与目标数据组一一对应。如此,基于目标数据组便可以确定转存数据块,可以达到直接定位至第一文件中某目标数据组的目的。

作为一种示例,获取至少一个目标数据组的待转存数据后,可以根据待转存数据的标记确定属于同一目标数据组的待转存数据,将属于同一目标数据组的待转存数据存入同一个数据块中,可以得到与至少一个目标数据组的数量相同的转存数据块。

例如,参见图2a,若目标数据组包括第三行和第四行,则获取的至少一个目标数据组中的待转存数据包括1、1、2、哈哈、2、2、3和测试,由于第三行的数据包括1、1、2和哈哈,第四行的数据包括2、2、3和测试,则将1、1、2和哈哈存入同一个数据块中,将2、2、3和测试存入同一个数据块中。例如,参见图2b,图2b为一个第二文件的数据存储的示意图。201对应的是第一文件中第三行的数据,202对应的是第二文件中第四行的数据,因此,可以将201对应的数据存入211对应的数据块a中,将202对应的数据存入212对应的数据块b中,可以得到两个转存数据块。

需要说明的是,将属于同一目标数据组的待转存数据存入一个数据块中,在数据更新需要获取数据时,可以仅获取该数据块中的数据,由于一个数据块中的数据占用的存储空间较小,因此,能够降低对存储空间的占用,且可以缩短数据获取的时间。

步骤106:将至少一个转存数据块存入第二文件中,并且在第二文件中记录至少一个转存数据块在第二文件中的存储位置以及至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

在实施中,可以将一个第一文件对应的至少一个转存数据块存储在一个第二文件中。也就是说,第二文件与第一文件是一一对应的关系。

在实施中,在第二文件中记录至少一个转存数据块在第二文件中的存储位置的具体实现可以包括:确定至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置。将每个转存数据块的起始存储位置和结束存储位置确定为每个转存数据块在第二文件中的存储位置。在第二文件中记录每个转存数据块在第二文件中的存储位置。

由于后续获取数据时需要获取某个转存数据块中的所有数据,因此,需要确定每个转存数据块的起始存储位置和结束存储位置,进而确定每个转存数据块在第二文件中的存储位置并进行记录,以便后续数据获取时可以根据这些信息获取到每个转存数据块中的所有数据。

在一种可能的实现方式中,确定至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置的具体实现可以包括:记录至少一个转存数据块中第一转存数据块的起始存储位置,第一转存数据块用于存储第一文件中第一个进行数据转存储的目标数据组的数据。根据每个转存数据块存储的数据的数据类型,确定至少一个转存数据块中每个转存数据块的存储空间。基于第一转存数据块的起始存储位置和每个转存数据块的存储空间,确定每个转存数据块的结束存储位置和至少一个转存数据块中除第一转存数据块之外的其他转存数据块的起始存储位置。

其中,数据类型包括int(基本整型)、float(浮点型)和string(字符串型)等。

也就是说,可以确定第一转存数据块的起始存储位置,并确定每个转存数据块的存储空间,基于第一转存数据块的起始存储位置和每个转存数据块的存储空间,确定每个转存数据块的结束存储位置和其他转存数据块的起始存储位置。

作为一种示例,参见图2a,图2a所示的第一文件中包括4行,目标数据组包括第三行和第四行,且第三行对应的转存数据块存入第二文件的时间早于第四行对应的转存数据块存入第二文件的时间,可以将第三行对应的转存数据块确定为第一转存数据块。

在实施中,可以在将第一转存数据块存入第二文件的过程中,记录第一转存数据块的起始存储位置。

在实施中,根据每个转存数据块中存储的数据的数据类型,确定每个转存数据块中存储的数据占用的字节大小,即确定每个转存数据块的存储空间。

需要说明的是,不同的数据类型占用的存储空间是不同的,且相同的数据类型在不同的计算设备中占用的存储空间也可能是不同的。以x86为例,int型数据占用的存储空间为4个字节、float型数据占用的存储空间为4个字节,string型数据中的每个字符占用的存储空间为1个字节,且string型数据要多计算一个结尾的/0。

例如,参见图2a,对于第二文件中与第三行对应的转存数据块,其数据类型分别为整型、整型、浮点型和字符串型,且第三行的数据为1、1、2和哈哈,可以确定第三行对应的转存数据块的存储空间为4+4+4+5=17。

在实施中,基于第一转存数据块的起始存储位置和第一转存数据块的存储空间,可以确定第一转存数据块的结束存储位置。例如,假设第一转存数据块的起始存储位置为第1字节,第一转存数据块的存储空间为17个字节,则第一转存数据块的结束存储位置为第17个字节。

作为一种示例,可以根据至少一个转存数据块存入第二文件的顺序,依次确定至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置。

例如,假设第三行与第一转存数据块对应,且第一转存数据块的结束存储位置为第17个字节,则第四行对应的转存数据块的起始存储位置为第18个字节。假设第四行对应的转存数据块的存储空间为17个字节,则第四行对应的转存数据块的结束存储位置为第34个字节。

在另一种可能的实现方式中,确定至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置的具体实现可以包括:记录至少一个转存数据块中每个转存数据块的起始存储位置。根据至少一个转存数据块中第二转存数据块存储的数据的数据类型,确定第二转存数据块的存储空间,第二转存数据块用于存储第一文件中最后一个进行数据转存储的目标数据组的数据。基于第二转存数据块的起始存储位置和第二转存数据块的存储空间,确定第二转存数据块的结束存储位置,并且基于每个转存数据块的起始存储位置,确定至少一个转存数据块中除第二转存数据块之外的其它转存数据块的结束存储位置。

也就是说,可以确定第一转存数据块的起始存储位置,并确定每个转存数据块的存储空间,基于第一转存块的起始存储位置和每个转存数据块的存储空间,确定每个转存数据块的结束存储位置和其他转存数据块的起始存储位置。

作为一种示例,参见图2a,图2a所示的第一文件中包括4行,目标数据组包括第三行和第四行,且第三行对应的转存数据块存入第二文件的时间早于第四行对应的转存数据块存入第二文件的时间,可以将第四行对应的转存数据块确定为第二转存数据块。

在实施中,可以在将至少一个转存数据块存入第二文件的过程中,记录每个转存数据块的起始存储位置。

在实施中,对于第二转存数据块,可以根据第二转存数据块中存储的数据的数据类型,确定第二转存数据块中存储的数据占用的字节大小,即确定第二转存数据块的存储空间。

在实施中,基于第二转存数据块的起始存储位置和第二转存数据块的存储空间,可以确定第二转存数据块的结束存储位置。

作为一种示例,可以根据每个转存数据块的起始存储位置对至少一个转存数据块进行排序。对于任一转存数据块,将该任一转存数据块后一个转存数据块的起始存储位置减1,可以得到该任一转存数据块的结束存储位置,如此,可以确定至少一个转存数据块中除第二转存数据块之外的其他转存数据块的结束存储位置。

在实施中,每个转存数据块与目标数据组的对应关系可以表示为转存数据块标识与目标数据组标识的对应关系。其中,转存数据块标识用于唯一指示一个转存数据块,目标数据组标识用于唯一指示一个目标数据组。例如,转存数据块211与目标数据组201对应,转存数据块212与目标数据组202对应。

在一些实施例中,若第一文件中包括数据名称和/或数据类型,将数据名称和/或数据类型存储至第二文件中。

例如,参见图2a,图2a所示的第一文件中第一行存储的为数据名称,对应每一列的数据的数据名称,第二行存储的为数据类型,对应每一列的数据的数据类型。

作为一种示例,为了便于快速查找,可以在第二文件的文件头中记录至少一个转存数据块在第二文件中的存储位置以及至少一个转存数据块中每个转存数据块与目标数据组的对应关系。例如,参见图2b,在图2b中,第二文件的文件头中记录了数据块a的存储位置为第1字节-第17字节、数据块b的存储位置为第18字节-第34字节、数据块a与目标数据组201对应,数据块b与目标数据组202对应。

需要说明的是,基于上述方法已经可以实现本说明书提出的数据转存储方法。接下来对基于本说明书的数据转存储方法存储数据后,获取数据的过程进行描述。

在实施中,可以接收数据获取请求,数据获取请求中包括目标数据组标识,目标数据组标识用于指示一个目标数据组。基于每个转存数据块与目标数据组的对应关系,确定目标数据组标识指示的目标数据组对应的转存数据块。确定所确定的转存数据块在第二文件中的存储位置。从所确定的存储位置处获取数据。

也就是说,计算设备接收到的数据获取请求中包括目标数据组标识,由于第二文件中存储有目标数据组与转存数据块的对应关系,且目标数据组标识可以用于唯一指示一个目标数据组,因此,可以确定该目标数据组标识指示的目标数据组对应的转存数据块。再确定转存数据块在第二文件中的存储位置,以便于可以从该存储位置处获取数据。

作为一种示例,根据第二文件中记录的每个转存数据块的存储位置,可以确定该转存数据块的起始存储位置和结束存储位置,并获取存储在起始存储位置和结束存储位置之间的数据,以及存储在该起始存储位置和该结束存储位置的数据,如此,可以获取到该转存数据块中的全部数据。

本说明书提供的数据转存储方法,获取第一文件的至少一个目标数据组中的待转存数据,并将属于同一目标数据组的待转存数据存入一个数据块中,得到至少一个转存数据块,且转存数据块与目标数据组一一对应。将至少一个转存数据块存入第二文件中,并且在第二文件中记录至少一个转存数据块在第二文件中的存储位置以及至少一个转存数据块中每个转存数据块与目标数据组的对应关系。如此,在接收到数据获取请求时,计算设备可以根据转存数据块与目标数据组的对应关系,确定需要获取的数据所在的转存数据块,并且仅从存储位置处获取该确定的转存数据块,而不需要将第二文件中的数据全部获取,由于一个转存数据块的存储空间较小,因此降低了存储空间的占用量,提高了获取数据的效率,进而提高了数据更新的效率。

以本说明书提供的数据存储方法在游戏配置数据中的应用为例,对所述数据存储方法进行进一步说明。其中,图3示出了本说明书一实施例提供的一种数据存储方法应用于游戏配置数据获取的流程图,具体包括以下步骤:

步骤302:获取excel表的至少一行中的游戏配置数据。

参见图2a,图2a所示的excel表包括四行,第一行存储的是游戏配置数据的数据名称,第二行存储的是游戏配置数据的数据类型。第三行和第四行存储的是游戏配置数据。

例如,在excel表的第一行定义了名称1(nid)、名称1(nvalue1)、名称3(fvalue2)和名称4(szvalue3)。在excel表的第二行定义了整型、整型、浮点型和字符串型四种数据类型,且该四种数据类型分别与名称1、名称2、名称3和名称4的游戏配置数据对应。在excel表的第三行存储的是1、1、2和哈哈,第三行存储的是2、2、3和测试,均为实际的游戏配置数据,因此,可以获取第三行和/或第四行中的游戏配置数据。

具体地,在数据转存储程序中,可以配置对excel表进行解析的数据,能够区分excel表中存储游戏配置数据的行、存储数据类型的行、以及存储数据名称的行。如此,便可以从excel表中获取游戏配置数据。

步骤304:将属于同一行的游戏配置数据存入一个数据块中,得到至少一个转存数据块,其中,转存数据块与excel表中的行是一一对应的。

在获取游戏配置数据的过程中,可以对获取到的游戏配置数据进行标记,为属于同一行的游戏配置数据设置相同的标记,由此,可以根据标记确定属于同一行的游戏配置数据。

例如,获取第三行和第四行的游戏配置数据的过程中,可以为第三行的1、1、2和哈哈这四个游戏配置数据设置标记1,为第四行的2、2、3和测试这四个游戏配置数据设置标记2。通过查询每个游戏配置数据对应的标记,可以确定标记为标记1的四个游戏配置数据1、1、2和哈哈属于同一行,且属于第三行标记为标记2的四个游戏配置数据2、2、3和测试属于同一行,且属于第四行。由此可见,可以将1、1、2和哈哈存入同一个数据块中,且该数据块与第三行对应,可以将2、2、3和测试存入同一个数据块中,且该数据块与第四行对应。

作为一种示例,可以将游戏配置数据的数据格式转换为二进制格式,将二进制格式的游戏配置数据存入数据块中。

步骤306:将至少一个转存数据块存入二进制文件中,在二进制文件中记录至少一个转存数据块中每个转存数据块与行的对应关系。

将excel表中第三行的游戏配置数据存入转存数据块a中,将第四行的游戏配置数据存入转存数据块b中,第三行和第四行的游戏配置数据来自同一个excel表,可以将第三行对应的转存数据块a和第四行对应的转存数据块b存入同一个二进制文件中。并且,在二进制文件中记录第三行与转存数据块a对应,第四行与转存数据块b对应。

图2a所示的excel表中包括数据名称和数据类型,还可以将数据名称和数据类型存储至二进制文件中。也即是,将名称1(nid)、名称1(nvalue1)、名称3(fvalue2)和名称4(szvalue3)四个数据名称存入二进制文件中,并将整型(int)、整型(int)、浮点型(float)和字符串型(string)四个数据类型存入二进制文件中。

为了便于查询,可以将数据名称、数据类型、每个转存数据块与目标数据组的对应关系存入二进制文件的文件头中。

步骤308:在二进制文件中记录至少一个转存数据块在二进制文件中的存储位置。

由于后续获取游戏配置数据时需要获取某个转存数据块中的所有游戏配置数据,因此,需要确定每个转存数据块的起始存储位置和结束存储位置,进而确定每个转存数据块在二进制文件中的存储位置并进行记录,以便后续数据获取时可以根据这些信息获取到每个转存数据块中的所有游戏配置数据。

在实施中,可以分别确定转存数据块a和转存数据块b在二进制文件中的起始存储位置和结束存储位置,将转存数据块a的起始存储位置和结束存储位置确定为转存数据块a在二进制文件中的存储位置,将转存数据块b的起始存储位置和结束存储位置确定为转存数据块b在二进制文件中的存储位置,并在二进制文件中记录转存数据块a和转存数据块b在二进制文件中的存储位置。

在一种可能的实现方式中,可以确定转存数据块a的起始存储位置,并基于转存数据块a存储的数据的数据类型,确定转存数据块a的存储空间,基于转存数据块b存储的数据的数据类型,确定转存数据块b的存储空间。基于转存数据块a的起始存储位置和转存数据块a的存储空间以及转存数据块b的存储空间,确定转存数据块a和转存数据块b的结束存储位置,以及转存数据块b的起始存储位置。

在实施中,可以在将转存数据块a存入二进制文件的过程中,记录转存数据块a的起始存储位置。

作为一种示例,假设第三行对应的转存数据块a中存储的四个游戏配置数据的数据类型分别为整型、整型、浮点型和字符串型,且第三行的游戏配置数据为1、1、2和哈哈,可以确定第三行对应的转存数据块a的存储空间为4+4+4+5=17。同理,可以确定第四行对应的转存数据块b的存储空间为17。

由此可以确定第四行对应的转存数据块b的起始存储位置为17+1=18,即结束存储位置为第18个字节,转存数据块b的结束存储位置为18+17-1=34,即结束存储位置为第34个字节。

在另一种可能的实现方式中,可以分别记录转存数据块a和转存数据块b的起始存储位置,根据转存数据块b存储的数据的数据类型,确定转存数据块b的存储空间。基于转存数据块b的起始存储位置和转存数据块b的存储空间,确定转存数据块b的结束存储位置,并且基于转存数据块a和转存数据块b的起始存储位置,可以确定转存数据块a的结束存储位置。

在实施中,可以在将转存数据块a和转存数据块b存入二进制文件的过程中,记录转存数据块a和转存数据块b的起始存储位置。

作为一种示例,假设第三行对应的转存数据块a中存储的四个游戏配置数据的数据类型分别为整型、整型、浮点型和字符串型,且第三行的游戏配置数据为1、1、2和哈哈,可以确定第三行对应的转存数据块a的存储空间为4+4+4+5=17。

由此可以确定第三行对应的转存数据块a的结束存储位置为第17个字节,进而可以确定转存数据块b的起始存储位置为第18个字节,转存数据块b的结束存储位置为18+17-1=34,即结束存储位置为第34个字节。进一步可以确定转存数据块a的存储位置为第1字节-第17字节、转存数据块b的存储位置为第18字节-第34字节。

为了便于查询,可以将转存数据块a的存储位置和转存数据块b的存储位置记录在二进制文件的文件头中。

需要说明的是,基于上述方法已经可以实现本说明书提出的数据转存储方法。接下来对基于本说明书的数据转存储方法存储游戏配置数据后,获取游戏配置数据的过程进行描述。

在实施中,可以接收数据获取请求,该数据获取请求中包括行标识,计算设备可以基于每个转存数据块与行的对应关系,确定行标识指示的行对应的转存数据块,并确定该转存数据块在二进制文件中的存储位置,从所确定的存储位置处获取游戏配置数据。

例如,行标识为3,可以确定需要第三行的数据,在二进制文件中第三行与转存数据块a对应,可以确定转存数据块a的存储位置为第1字节-第17字节,因此,可以获取二进制文件中第1字节-第17字节存储的游戏配置数据。

需要说明的是,上述步骤306和步骤308是基于将至少一个转存数据块存入二进制文件中,并且在二进制文件中记录至少一个转存数据块在二进制文件中的存储位置以及至少一个转存数据块中每个转存数据块与行的对应关系这一步骤得到的。

本说明书提供的数据转存储方法,获取第一文件的至少一个目标数据组中的待转存数据,并将属于同一目标数据组的待转存数据存入一个数据块中,得到至少一个转存数据块,且转存数据块与目标数据组一一对应。将至少一个转存数据块存入第二文件中,并且在第二文件中记录至少一个转存数据块在第二文件中的存储位置以及至少一个转存数据块中每个转存数据块与目标数据组的对应关系。如此,在接收到数据获取请求时,计算设备可以根据转存数据块与目标数据组的对应关系,确定需要获取的数据所在的转存数据块,并且仅从存储位置处获取该确定的转存数据块,而不需要将第二文件中的数据全部获取,由于一个转存数据块的存储空间较小,因此降低了存储空间的占用量,提高了获取数据的效率,进而提高了数据更新的效率。

与上述方法实施例相对应,本说明书还提供了数据转存储装置实施例,图3示出了本说明书一实施例提供的一种数据转存储装置的结构示意图。如图3所示,该装置包括:

获取模块402,用于获取第一文件的至少一个目标数据组中的待转存数据;

第一存储模块404,用于将属于同一目标数据组的所述待转存数据存入一个数据块中,得到至少一个转存数据块,其中,所述转存数据块与目标数据组一一对应;

第二存储模块406,用于将所述至少一个转存数据块存入第二文件中,并且在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

可选地,所述第二存储模块406用于:

确定所述至少一个转存数据块中每个转存数据块的起始存储位置和结束存储位置;

将每个转存数据块的起始存储位置和结束存储位置确定为每个转存数据块在所述第二文件中的存储位置;

在所述第二文件中记录每个转存数据块在所述第二文件中的存储位置。

可选地,所述第二存储模块406用于:

记录所述至少一个转存数据块中第一转存数据块的起始存储位置,所述第一转存数据块用于存储所述第一文件中第一个进行数据转存储的目标数据组的数据;

根据每个转存数据块存储的数据的数据类型,确定所述至少一个转存数据块中每个转存数据块的存储空间;

基于所述第一转存数据块的起始存储位置和每个转存数据块的存储空间,确定每个转存数据块的结束存储位置和所述至少一个转存数据块中除所述第一转存数据块之外的其他转存数据块的起始存储位置。

可选地,所述第二存储模块406用于:

记录所述至少一个转存数据块中每个转存数据块的起始存储位置;

根据所述至少一个转存数据块中第二转存数据块存储的数据的数据类型,确定所述第二转存数据块的存储空间,所述第二转存数据块用于存储所述第一文件中最后一个进行数据转存储的目标数据组的数据;

基于所述第二转存数据块的起始存储位置和所述第二转存数据块的存储空间,确定所述第二转存数据块的结束存储位置,并且基于每个转存数据块的起始存储位置,确定所述至少一个转存数据块中除所述第二转存数据块之外的其它转存数据块的结束存储位置。

可选地,若所述第一文件中包括数据名称和/或数据类型,将所述数据名称和/或所述数据类型存储至所述第二文件中。

可选地,所述装置还包括:

接收模块,用于接收数据获取请求,所述数据获取请求中包括目标数据组标识,所述目标数据组标识用于指示一个目标数据组;

第一确定模块,用于基于每个转存数据块与目标数据组的对应关系,确定所述目标数据组标识指示的目标数据组对应的转存数据块;

第二确定模块,用于确定所确定的转存数据块在所述第二文件中的存储位置;

获取模块,用于从所确定的存储位置处获取数据。

可选地,所述第二存储模块406用于:

在所述第二文件的文件头中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

可选地,所述第二文件为二进制文件。

本说明书提供的数据转存储方法,获取第一文件的至少一个目标数据组中的待转存数据,并将属于同一目标数据组的待转存数据存入一个数据块中,得到至少一个转存数据块,且转存数据块与目标数据组一一对应。将至少一个转存数据块存入第二文件中,并且在第二文件中记录至少一个转存数据块在第二文件中的存储位置以及至少一个转存数据块中每个转存数据块与目标数据组的对应关系。如此,在接收到数据获取请求时,计算设备可以根据转存数据块与目标数据组的对应关系,确定需要获取的数据所在的转存数据块,并且仅从存储位置处获取该确定的转存数据块,而不需要将第二文件中的数据全部获取,由于一个转存数据块的存储空间较小,因此降低了存储空间的占用量,提高了获取数据的效率,进而提高了数据更新的效率。

上述为本实施例的一种数据转存储装置的示意性方案。需要说明的是,该数据转存储装置的技术方案与上述的数据转存储方法的技术方案属于同一构思,数据转存储装置的技术方案未详细描述的细节内容,均可以参见上述数据转存储方法的技术方案的描述。

图5示出了根据本说明书一实施例提供的一种计算设备500的结构框图。该计算设备500的部件包括但不限于存储器510和处理器520。处理器420与存储器510通过总线530相连接,数据库550用于保存数据。

计算设备500还包括接入设备540,接入设备540使得计算设备500能够经由一个或多个网络560通信。这些网络的示例包括公用交换电话网(pstn)、局域网(lan)、广域网(wan)、个域网(pan)或诸如因特网的通信网络的组合。接入设备540可以包括有线或无线的任何类型的网络接口(例如,网络接口卡(nic))中的一个或多个,诸如ieee802.11无线局域网(wlan)无线接口、全球微波互联接入(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙接口、近场通信(nfc)接口,等等。

在本说明书的一个实施例中,计算设备500的上述部件以及图5中未示出的其他部件也可以彼此相连接,例如通过总线。应当理解,图5所示的计算设备结构框图仅仅是出于示例的目的,而不是对本说明书范围的限制。本领域技术人员可以根据需要,增添或替换其他部件。

计算设备500可以是任何类型的静止或移动计算设备,包括移动计算机或移动计算设备(例如,平板计算机、个人数字助理、膝上型计算机、笔记本计算机、上网本等)、移动电话(例如,智能手机)、可佩戴的计算设备(例如,智能手表、智能眼镜等)或其他类型的移动设备,或者诸如台式计算机或pc的静止计算设备。计算设备500还可以是移动式或静止式的服务器。

处理器520用于执行如下计算机可执行指令:

获取第一文件的至少一个目标数据组中的待转存数据;

将属于同一目标数据组的所述待转存数据存入一个数据块中,得到至少一个转存数据块,其中,所述转存数据块与目标数据组一一对应;

将所述至少一个转存数据块存入第二文件中,并且在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

上述为本实施例的一种计算设备的示意性方案。需要说明的是,该计算设备的技术方案与上述的数据转存储方法的技术方案属于同一构思,计算设备的技术方案未详细描述的细节内容,均可以参见上述数据转存储方法的技术方案的描述。

本说明书一实施例还提供一种计算机可读存储介质,其存储有计算机指令,该指令被处理器执行时以用于:

获取第一文件的至少一个目标数据组中的待转存数据;

将属于同一目标数据组的所述待转存数据存入一个数据块中,得到至少一个转存数据块,其中,所述转存数据块与目标数据组一一对应;

将所述至少一个转存数据块存入第二文件中,并且在所述第二文件中记录所述至少一个转存数据块在所述第二文件中的存储位置以及所述至少一个转存数据块中每个转存数据块与目标数据组的对应关系。

上述为本实施例的一种计算机可读存储介质的示意性方案。需要说明的是,该存储介质的技术方案与上述的数据转存储方法的技术方案属于同一构思,存储介质的技术方案未详细描述的细节内容,均可以参见上述数据转存储方法的技术方案的描述。

上述对本说明书特定实施例进行了描述。其它实施例在所附权利要求书的范围内。在一些情况下,在权利要求书中记载的动作或步骤可以按照不同于实施例中的顺序来执行并且仍然可以实现期望的结果。另外,在附图中描绘的过程不一定要求示出的特定顺序或者连续顺序才能实现期望的结果。在某些实施方式中,多任务处理和并行处理也是可以的或者可能是有利的。

所述计算机指令包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质可以包括:能够携带所述计算机程序代码的任何实体或装置、记录介质、u盘、移动硬盘、磁碟、光盘、计算机存储器、只读存储器(rom,read-onlymemory)、随机存取存储器(ram,randomaccessmemory)、电载波信号、电信信号以及软件分发介质等。需要说明的是,所述计算机可读介质包含的内容可以根据司法管辖区内立法和专利实践的要求进行适当的增减,例如在某些司法管辖区,根据立法和专利实践,计算机可读介质不包括电载波信号和电信信号。

需要说明的是,对于前述的各方法实施例,为了简便描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本说明书并不受所描述的动作顺序的限制,因为依据本说明书,某些步骤可以采用其它顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定都是本说明书所必须的。

在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其它实施例的相关描述。

以上公开的本说明书优选实施例只是用于帮助阐述本说明书。可选实施例并没有详尽叙述所有的细节,也不限制该发明仅为所述的具体实施方式。显然,根据本说明书的内容,可作很多的修改和变化。本说明书选取并具体描述这些实施例,是为了更好地解释本说明书的原理和实际应用,从而使所属技术领域技术人员能很好地理解和利用本说明书。本说明书仅受权利要求书及其全部范围和等效物的限制。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1