CN112540958A - 文件处理方法、装置、设备及计算机存储介质 - Google Patents
文件处理方法、装置、设备及计算机存储介质 Download PDFInfo
- Publication number
- CN112540958A CN112540958A CN202011422429.1A CN202011422429A CN112540958A CN 112540958 A CN112540958 A CN 112540958A CN 202011422429 A CN202011422429 A CN 202011422429A CN 112540958 A CN112540958 A CN 112540958A
- Authority
- CN
- China
- Prior art keywords
- byte
- file
- data
- target node
- target
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
- G06F16/116—Details of conversion of file system types or formats
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/11—File system administration, e.g. details of archiving or snapshots
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本申请公开了文件处理方法、装置、设备及计算机存储介质,涉及计算机视觉技术领域。具体实现方案为:获取所述文件中的目标节点,所述目标节点为所述文件的目标对象或所述目标对象的子对象;按照预设的对应关系,将所述目标节点转换为进制数的格式,存储在所述目标节点对应的字节中。本申请实施例能够提高文件的存储、打开速度,节省存储空间。
Description
技术领域
本申请涉及数据处理技术领域,尤其涉及计算机视觉技术领域。
背景技术
随着信息化的发展,演示文稿等文档的使用场景已非常广泛。在各行各业的使用当中,幻灯片也越来越复杂。不仅添加多种格式的文字、表格,还引入图片、音频和视频等多媒体资源。在文档格式的数据组织关系中,多媒体信息的添加并不会造成解析的障碍,因为它们之间是独立存储的。但在实际应用中,数据量激增时,严重影响了文件的转换与解析效率。
发明内容
本申请提供了一种用于文件处理方法、装置、设备以及计算机存储介质。
根据本申请的一方面,提供了一种文件处理方法,包括:获取文件中的目标节点,目标节点为文件的目标对象或目标对象的子对象;按照预设的对应关系,将目标节点转换为进制数的格式,存储在目标节点对应的字节中。
根据本申请的另一方面,提供了一种文件处理装置,包括:
目标节点获取模块,用于获取文件中的目标节点,目标节点为文件的目标对象或目标对象的子对象;
节点转换模块,用于按照预设的对应关系,将目标节点转换为进制数的格式,存储在目标节点对应的字节中。
根据本申请又一方面,提供了一种电子设备,包括:
至少一个处理器;以及
与至少一个处理器通信连接的存储器;其中,
存储器存储有可被至少一个处理器执行的指令,指令被至少一个处理器执行,以使至少一个处理器能够执行本申请任意一项实施例所提供的方法。
根据本申请的又一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,计算机指令用于使计算机执行本申请任意一项实施例所提供方法。
根据本申请的又一方面,提供了一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现本申请任意一项实施例所提供的方法。
根据本申请的实施例,将文件中包含的目标对象的相关数据,按照预设对应关系,转换为进制数,存储在对应的字节中,从而文件存储所消耗的存储空间减少,在展示文件时,数据读取、转换速度也能够得到显著提高。
应当理解,本部分所描述的内容并非旨在标识本申请的实施例的关键或重要特征,也不用于限制本申请的范围。本申请的其它特征将通过以下的说明书而变得容易理解。
附图说明
附图用于更好地理解本方案,不构成对本申请的限定。其中:
图1是根据本申请一实施例的文件处理方法示意图;
图2是根据本申请另一实施例的文件处理方法示意图;
图3是根据本申请一示例的默认图形示意图;
图4是根据本申请一示例的自定义图形示意图;
图5是根据本申请一示例的自定义图形背景示意图;
图6是根据本申请一示例的文件的对象组织关系示意图;
图7是根据本申请一示例的文件处理装置示意图;
图8是根据本申请另一示例的文件处理装置示意图;
图9是根据本申请另一示例的文件处理装置示意图;
图10是根据本申请另一示例的文件处理装置示意图;
图11是用来实现本申请实施例的文件处理方法的电子设备的框图。
具体实施方式
以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
本申请实施例首先提供一种文件处理方法,如图1所示,包括:
步骤S11:获取文件中的目标节点,目标节点为文件的目标对象或目标对象的子对象;
步骤S12:按照预设的对应关系,将目标节点转换为进制数的格式,存储在目标节点对应的字节中。
本实施例中,文件可以是任意格式的文档文件,具体可以是演示文稿文件,例如PPT(Microsoft Office PowerPoint)、PPTX(高版Microsoft Office PowerPoint)文件。
文件中可以包含多个对象,目标对象可以是文件包含的对象中的一个或多个,比如,构成文件的某个文字对象、图形对象等。
目标对象的子对象,包括目标对象的一级子对象、目标对象的二级子对象(目标对象的一级子对象的子对象)等。
目标节点,可以是文件中与目标对象有关的所有数据,也可以是文件中与目标对象有关的所有数据中的部分数据。
获取文件中的目标节点,可以是获取目标对象所包含的相关数据。比如目标节点可以是目标对象本身(目标对象的名称等)、目标对象的参数、目标对象所包含的子对象的名称或目标对象所包含的子对象的参数等。
按照预设的对应关系,将目标节点转换为进制数的格式,可以是根据相关数据与进制数的对应关系,将目标对象的相关数据转换为进制数。
例如,在预设的对应关系中,目标对象A对应进制数B,目标对象C对应进制数D,则在转换过程中,将目标对象A转换为进制数B,将目标对象C转换为进制数D。
再如,在预设的对应关系中,目标对象E的子对象F对应进制数G,则在转换过程中,将目标对象E的子对象F转换为进制数G。
在本实施例中,进制数具体可以是二进制数、八进制数据、十进制数或十六进制数等。
目标节点对应的字节,可以包括多个字节,每个字节存储目标对象的相关数据的一部分。
本实施例中,在目标对象包含多个子对象的情况下,可以将某一个或一部分子对象转换为进制数进行存储。
本申请实施例中,将文件中包含的目标对象的相关数据,按照预设对应关系,转换为进制数,存储在对应的字节中,从而文件存储所消耗的存储空间减少,在展示文件时,数据读取、转换速度也能够得到显著提高。
在一种实施方式中,如图2所示,文件处理方法还包括:
步骤S21:获取目标对象的参数和/或目标对象的子对象的参数;
步骤S22:将目标对象的参数或目标对象的子对象的参数以进制数或字符的形式存储在目标对象或目标对象的子对象的参数对应的字节中。
本实施例中,可以将目标对象的参数以进制的形式存储在对应的字节中。也可以将目标对象的子对象的参数以进制的形式存储在对应的字节中。
或者,可以将目标对象的参数以字符的形式存储在对应的字节中,也可以将目标对象的子对象的参数以字符的形式存储在对应的字节中。
本实施例中,针对目标对象的参数和目标对象的子对象的参数,可以灵活选择存储方式,既可以转换为进制数进行存储,也可以转换为字符进行存储,既能够减少文件所占存储空间、提高文件打开展示时的读取速度,又能够提供多样化的存储方式。如果出现目标对象的参数或目标对象的子对象的参数与目标对象或目标对象对应的进制数相同的情况,可将目标对象的参数或目标对象的子对象的参数采用字符的形式存储,避免混淆。
在一种实施方式中,文件处理方法还包括:
根据文件展示指令,读取文件的单位字节中存储的数据,数据为进制数或字符;
根据读取的数据,获取文件中的目标节点以及目标节点对应的参数;
将目标节点和目标节点对应的参数转换为与文件的格式一致的展示内容,展示在目标对象在文件的显示界面中对应的位置。
本实施例中,文件展示指令,可以是根据对文件进行双击等打开操作产生的展示指令。
本实施例中,获取文件中的目标节点以及目标节点对应的参数,可以是按照字节的存储顺序,进行逐字节读取。
将目标节点和目标节点对应的参数转换为与文件的格式一致的展示内容,具体可以是将进制数或字符转换为与文件格式一致的图像、字符或数字等。
将目标节点和目标节点对应的参数转换为与文件的格式一致的展示内容,展示在目标对象在文件的显示界面中对应的位置,具体可以是将目标对象展示在目标对象在显示界面中对应的区域,将目标对象的各个子对象展示在子对象对应的区域。
本实施例中,在打开展示文件时,从单位字节中存储的数据中,获得目标对象或目标对象的子对象的相关信息,文件展示时的速度大幅度提高。
在一种实施方式中,根据读取的数据,生成文件中的目标节点以及目标节点对应的参数,包括:
确定目标节点对应的起始字节和终止字节;
根据起始字节和终止字节之间的字节中存储的数据,生成目标节点以及目标节点对应的参数。
本实施例中,可以首先确定起始字节,从起始字节起,识别终止字节,在未识别到终止字节时,将当前读取的字节中存储的数据转换为目标节点以及目标节点对应的参数。
当当前读取的字节中的内容按照预设的对应关系,对应于目标对象或目标对象的子对象时,可确定当前读取的字节为起始字节,在后续读取过程中,读取到终止字节之前,所读取的数据都为与起始字节对应的目标对象或目标对象的子对象相关的数据。
本实施例中,在展示文件时,可以按照文件存储的字节进行逐字节读取,在提高读取速度的同时,保证文件转换过程的正确性。
在一种实施方式中,确定目标节点对应的起始字节,包括:
在当前读取的字节的数据,为预设的目标节点对应的数据的情况下,确定当前读取的字节为起始字节。
预设的目标节点对应的数据,比如可以是目标对象或目标对象的子对象对应的数据。例如,当读取的字节的数据可以转换为文件的自定义图形的线条列表时,可确定当前读取的字节为起始字节,若改起始字节之后存在参数,则参数为与线条列表同一级的子对象(包括线条列表本身)的参数。
本实施例中,确定当前读取的字节为起始字节,使得后续将起始字节后的字节内容提取出,并与目标节点建立对应关系,能够保证文件转换过程的正确性。
在一种实施方式中,确定目标节点对应的终止字节,包括:
在当前读取的字节的数据,为预设的终止符对应的数据的情况下,确定当前读取的字节为终止字节。
本实施例中,预设的终止符可以是特定的字符或者特定字符的结合。
终止字节可以用于表示目标对象的相关数据或目标对象的子对象的相关数据已经读取完毕。
本实施例中,采用预设的终止符表示终止字节,从而使得不同的目标对象的相关数据、不同的目标对象的子对象的相关数据能够区分开,保证数据读取展示过程的正确性。
在一种实施方式中,确定目标节点对应的起始字节,包括:
在当前读取的字节的数据,为预设的提取字节数指示数的情况下,确定当前读取的字节为起始字节。
本实施例中,起始字节到终止字节之间的数据,可以是目标对象、目标对象的子对象、目标对象的参数、目标对象的子对象的参数中的一种或两种以上的结合。
比如,起始字节到终止字节之间的数据,为目标对象对应的参数。
再如,起始字节到终止字节之间的数据,为目标对象。
再如,起始字节到终止字节之间的数据,为目标对象的第一级子对象。
再如,起始字节到终止字节之间的数据,为目标对象的第二级子对象。
再如,起始字节到终止字节之间的数据,为目标对象的第一级子对象的参数。
预设的提取字节数指示数,可以用于指示后续提取的字节数,比如,可以是指示数H,用于提示提取后续的1个字节;指示数I,用于提示提取后续的2个字节等。
本实施例中,可采用预设的提取字节数指示数识别起始字节,提供了识别起始字节的另一种方式。
在一种实施方式中,确定目标节点对应的终止字节,包括:
按照提取字节数指示数所指示的目标字节数,提取目标字节数对应的字节,确定提取的末位字节为终止字节。
本实施例中,可采用预设的提取字节数指示数识别终止字节,无需设置终止符,提供了识别终止字节的另一种方式。
在一种实施方式中,目标对象为文件中的图形,目标对象的子对象为图形的构成元素。
文件中的图形,可以是文件中的默认图形,比如矩形、三角形、箭头等缺省图形,如图3以及图4右半部分所示所示。
文件中的图形,也可以是文件中的自定义图形。比如,PPT文件中的自定义图形,如图4左半部分所示。自定义图形可以是文件中,默认图形之外的其它图像比如,自定义线条等。
在如图5所示的幻灯片,其背景是由很多线条组成的世界地图,其中包含数以万计的点,在背景中亮点越量,表示点密度越大。其存储的模板数据高达54万多行,文档大小是同类数据的四千多倍。
本申请实施例中,将这一类数据存储为进制数格式,将使得存储空间大幅度降低,在展示或存储时解析文件的时间也相应能够变短。
在一种实施方式中,进制数为二进制数。
具体而言,二进制数可以为整数、小数,精度可以为单精度、双精度等。
本实施例中,将目标对象和目标对象的子对象存储为二进制数,从而能够对文件的操作人员友好,适用范围广。
图6为本申请实施例应用的PPT文件的组织关系示意图。其中,幻灯片组数据(sides)包含对象show(是否显示参数)、showMasterSp(显示母版形状对象)和cSld(幻灯片)等对象。
cSld又包含bg(背景)、controls(控制器)、spTree(样式树)等子对象。
进一步,spTree又包含name(节点名称)、pic(图片)、graphicFrame(主要绘制属性)、sp(图形对象)等子对象。
进一步,sp又包含spPr(图形对象属性)、style(样式集)、txBody(文字集合)等子对象。
进一步,spPr又包含prstGeom(预定义图形)、custGeom(自定义图形)等子对象。
进一步,custGeom又包含avLst(调节点列表)、gdLst(形状列表)、ahLst(控制点句柄列表)、cxnLst(连接点列表)、pathLst(绘制路径)等子对象。这些子对象最终又包含下一级子对象或参数。比如,pathLst包含moveTo(移动至)参数和lineTo(线条绘至)等参数。
在本申请一种示例中,将PPT文件中的custGeom作为目标对象,将custGeom的子对象作为目标对象的子对象。
本示例中,custGeom字段存放自定义图形,这个字段下的每个数据都是点位置和长宽的信息。当custGeom激增后,数据解析与封装会耗大量的内存和时间,严重影响文档预览体验。采用本示例所提供的方法,能够比xml和Jason格式存储节省大量的存储空间和解析时间。
在本示例中,可以将图6所示的目标对象的树形图中的custGeom下的每个关键节点定义成一个字节的二进制数,一个字节的二进制数可以表示0到255个类型。具体可采用如下定义:
PATHLST定义为1;CXNLST定义为2;GDLST定义为3;AVLST定义为4;AHLST定义为5;BEZTo(贝塞尔曲线)定义为10;MOVETo定义为11;PTS(path,路径)定义为100;B_CHAR定义为122;B_INT32(32位整数)定义为123;B_INT64(64位整数)定义为124;B_DOUBLE(双精度浮点)定义为125;B_VOID(空)定义为126;END(终止)定义为127。
定义的时候按照实际需求选择节点并分段,这样也方便后续对节点定义扩展。
在其它实施方式中,可以将文件中的任意目标对象或子对象转换为进制数进行存储,将任意目标对象的参数或子对象的参数转换为进制数或字符存储。
在本申请一种示例中,对文件进行封装时,可以采用下述步骤进行封装:
从目标对象的目录树对应的根节点开始,依次封装子节点;
封装至新节点时,按照预设关系封装定义好的节点;
封装必要时增加End标识;
可以将后续需要连续读取的一个字节数据封装为B_CHAR;
可以将后续需要连续读取的将四个字节数据封装为B_INT32;
可以将后续需要连续读取的八个字节数据封装为B_INT64;
可以将双精度数据封装为B_DOUBLE;
可以将字符串类型以字符“\0”结尾;
针对void类型数据,后续的封装长度为B_VOID(空)。
在一种示例中,针对下述数据进行封装:
“custGeom”:{
“rect”:{
“b”:“b”,
“l”:“0”,
“r”:“r”,
“t”:“0”
},
“pathLst”[{
“h”:“57”,
“w”:“50”,
“to”:[{
“pts”:[{
“x”:“7”,
“y”:“57”
]},
“tag”:“moveTo”
},{
“pts”:[{
“x”:“7”,
“y”:“57”
},{
“x”:“6”,
“y”:“57”
},{
“x”:“6”,
“y”:“57”
}],
将上述数据,可封装为下述表1中的二进制格式,其中,每一个空格代表一个字节,‘’代表字符:
1 | 11 | 100 | ‘7’ | 0 | ‘5’ | ‘7’ | 0 | 10 |
100 | ‘7’ | 0 | ‘5’ | ‘7’ | 0 | ‘6’ | 0 | ‘5’ |
‘7’ | 0 | ‘6’ | 0 | ‘5’ | ‘7’ | 0 | … | … |
表1
上述表格中,首先对待封装数据的根节点进行封装,第一级子节点包括“pathLst”、“moveTo”;PATHLST定义为1,MOVETo定义为11。在封装了第一级子节点后,封装下一级子节点“pts”、“BEZTo”,“BEZTo”表示最后一个“pts”括号中的部分PTS,(pathLst)定义为100,BEZTo定义为10。最后封装再下一级子节点,包括“pts”。每封装一级子节点后,将该级子节点对应的所有参数都进行封装。封装方式可采用转换为二进制的方式,或者也可采用原有封装方式。
相同的演示文稿数据,在相同的设备下,JSON(JavaScript Object Notation,JS对象简谱)输出要890毫秒,而通过本申请实施例提供的二进制方式进行存储时,文件数据输出只需15毫秒。
解析时从第0字节开始读起,每次读一个字节,对字节进行判断,进行相应的处理,具体解析过程包括:
如果是节点生成节点;
如果是B_CHAR则取一字节数据;
如果是B_INT32则取四字节数据;
如果是B_INT64则取八字节数据;
如果是B_DOUBLE则取双精度数据;
如果是B_VOID则下一个字节取长度,之后取整个长度内存;
否则为字符串类型,以‘0’为结束。
相同的演示文稿数据,在相同的设备下,json解析要300毫秒,而二进制解析只需15毫秒。
本申请实施例还提供了一种文件处理装置,如图7所示,包括:
目标节点获取模块71,用于获取文件中的目标节点,目标节点为文件的目标对象或目标对象的子对象;
节点转换模块72,用于按照预设的对应关系,将目标节点转换为进制数的格式,存储在目标节点对应的字节中。
在一种实施方式中,如图8所示装置还包括:
参数获取模块81,用于获取目标对象的参数和/或目标对象的子对象的参数;
参数转换模块82,用于将目标对象的参数或目标对象的子对象的参数以进制数或字符的形式存储在目标对象或目标对象的子对象的参数对应的字节中。
在一种实施方式中,如图9所示,装置还包括:
展示数据获取模块91,用于根据文件展示指令,读取文件的单位字节中存储的数据,数据为进制数或字符;
展示数据处理模块92,用于根据读取的数据,获取文件中的目标节点以及目标节点对应的参数;
展示数据转换模块93,用于将目标节点和目标节点对应的参数转换为与文件的格式一致的展示内容,展示在目标对象在文件的显示界面中对应的位置。
在一种实施方式中,如图10所示,展示数据处理模块包括:
起止单元101,用于确定目标节点对应的起始字节和终止字节;
数据转换单元102,用于根据起始字节和终止字节之间的字节中存储的数据,生成目标节点以及目标节点对应的参数。
在一种实施方式中,起止单元还用于:
在当前读取的字节的数据,为预设的目标节点对应的数据的情况下,确定当前读取的字节为起始字节。
在一种实施方式中,起止单元还用于:
在当前读取的字节的数据,为预设的终止符对应的数据的情况下,确定当前读取的字节为终止字节。
在一种实施方式中,起止单元还用于:
在当前读取的字节的数据,为预设的提取字节数指示数的情况下,确定当前读取的字节为起始字节。
在一种实施方式中,起止单元还用于:
按照提取字节数指示数所指示的目标字节数,提取目标字节数对应的字节,确定提取的末位字节为终止字节。
在一种实施方式中,目标对象为文件中的图形,目标对象的子对象为图形的构成元素。
在一种实施方式中,进制数为二进制数。
根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。
如图11所示,是根据本申请实施例的文件处理方法的电子设备的框图。电子设备旨在表示各种形式的进制数计算机,诸如,膝上型计算机、台式计算机、工作台、个人进制数助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人进制数处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图11所示,该电子设备包括:一个或多个处理器1101、存储器1102,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示GUI的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图11中以一个处理器1101为例。
存储器1102即为本申请所提供的非瞬时计算机可读存储介质。其中,存储器存储有可由至少一个处理器执行的指令,以使至少一个处理器执行本申请所提供的文件处理方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的文件处理方法。
存储器1102作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的文件处理方法对应的程序指令/模块(例如,附图7所示的目标节点获取模块71和节点转换模块72)。处理器1101通过运行存储在存储器1102中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的文件处理方法。
存储器1102可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据文件处理电子设备的使用所创建的数据等。此外,存储器1102可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1102可选包括相对于处理器1101远程设置的存储器,这些远程存储器可以通过网络连接至文件处理电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。
文件处理方法的电子设备还可以包括:输入装置1103和输出装置1104。处理器1101、存储器1102、输入装置1103和输出装置1104可以通过总线或者其他方式连接,图11中以通过总线连接为例。
输入装置1103可接收输入的进制数或字符信息,以及产生与文件处理电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1104可以包括显示设备、辅助照明装置(例如,LED)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(LCD)、发光二极管(LED)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。
此处描述的系统和技术的各种实施方式可以在进制数电子电路系统、集成电路系统、专用ASIC(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。
这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入、或者触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的进制数数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。服务器可以是云服务器,又称为云计算服务器或云主机,是云计算服务体系中的一项主机产品,以解决传统物理主机与虚拟专用服务器(VPS)服务中,存在的管理难度大,业务扩展性弱的缺陷。服务器也可以为分布式系统的服务器,或者是结合了区块链的服务器。
根据本申请实施例的技术方案,一个字节标识节点:小存储单位标识,节约了存储空间
抛弃字符串长度标识:节约了存储时对二进制内容长度的存储。
最短的二进制数据存储:没有多余标识,优于复杂的二进制存储协议。
最短段的时间读取:只需要遍历一次即可把数据解析出来。
本申请一种示例中,对45万个节点数据进行测试,测试结果如下表2所示:
数据打包耗时 | 所需内存 | 输出文件大小 | 解析时间 | |
Json | 890毫秒 | 165.66M | 12.87M | 300毫秒 |
二进制 | 15毫秒 | 2.72M | 2.72M | 15毫秒 |
表2
应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。
上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。
Claims (23)
1.一种文件处理方法,包括:
获取所述文件中的目标节点,所述目标节点为所述文件的目标对象或所述目标对象的子对象;
按照预设的对应关系,将所述目标节点转换为进制数的格式,存储在所述目标节点对应的字节中。
2.根据权利要求1所述的方法,其中,所述方法还包括:
获取所述目标对象的参数和/或所述目标对象的子对象的参数;
将所述目标对象的参数或目标对象的子对象的参数以进制数或字符的形式存储在所述目标对象或目标对象的子对象的参数对应的字节中。
3.根据权利要求2所述的方法,其中,所述方法还包括:
根据文件展示指令,读取文件的单位字节中存储的数据,所述数据为进制数或字符;
根据读取的数据,获取所述文件中的目标节点以及所述目标节点对应的参数;
将所述目标节点和目标节点对应的参数转换为与所述文件的格式一致的展示内容,展示在所述目标对象在文件的显示界面中对应的位置。
4.根据权利要求3所述的方法,其中,所述根据读取的数据,生成文件中的目标节点以及所述目标节点对应的参数,包括:
确定所述目标节点对应的起始字节和终止字节;
根据所述起始字节和终止字节之间的字节中存储的数据,生成所述目标节点以及所述目标节点对应的参数。
5.根据权利要求4所述的方法,其中,确定所述目标节点对应的起始字节,包括:
在当前读取的字节的数据,为预设的目标节点对应的数据的情况下,确定当前读取的字节为起始字节。
6.根据权利要求4所述的方法,其中,确定所述目标节点对应的终止字节,包括:
在当前读取的字节的数据,为预设的终止符对应的数据的情况下,确定当前读取的字节为终止字节。
7.根据权利要求4所述的方法,其中,确定所述目标节点对应的起始字节,包括:
在当前读取的字节的数据,为预设的提取字节数指示数的情况下,确定当前读取的字节为起始字节。
8.根据权利要求7所述的方法,其中,确定所述目标节点对应的终止字节,包括:
按照所述提取字节数指示数所指示的目标字节数,提取所述目标字节数对应的字节,确定提取的末位字节为终止字节。
9.根据权利要求1-8中任意一项所述的方法,其中,所述目标对象为所述文件中的图形,所述目标对象的子对象为所述图形的构成元素。
10.根据权利要求1-8中任意一项所述的方法,其中,所述进制数为二进制数。
11.一种文件处理装置,包括:
目标节点获取模块,用于获取所述文件中的目标节点,所述目标节点为所述文件的目标对象或所述目标对象的子对象;
节点转换模块,用于按照预设的对应关系,将所述目标节点转换为进制数的格式,存储在所述目标节点对应的字节中。
12.根据权利要求11所述的装置,其中,所述装置还包括:
参数获取模块,用于获取所述目标对象的参数和/或所述目标对象的子对象的参数;
参数转换模块,用于将所述目标对象的参数或目标对象的子对象的参数以进制数或字符的形式存储在所述目标对象或目标对象的子对象的参数对应的字节中。
13.根据权利要求12所述的装置,其中,所述装置还包括:
展示数据获取模块,用于根据文件展示指令,读取文件的单位字节中存储的数据,所述数据为进制数或字符;
展示数据处理模块,用于根据读取的数据,获取所述文件中的目标节点以及所述目标节点对应的参数;
展示数据转换模块,用于将所述目标节点和目标节点对应的参数转换为与所述文件的格式一致的展示内容,展示在所述目标对象在文件的显示界面中对应的位置。
14.根据权利要求13所述的装置,其中,所述展示数据处理模块包括:
起止单元,用于确定所述目标节点对应的起始字节和终止字节;
数据转换单元,用于根据所述起始字节和终止字节之间的字节中存储的数据,生成所述目标节点以及所述目标节点对应的参数。
15.根据权利要求14所述的装置,其中,所述起止单元还用于:
在当前读取的字节的数据,为预设的目标节点对应的数据的情况下,确定当前读取的字节为起始字节。
16.根据权利要求14所述的装置,其中,所述起止单元还用于:
在当前读取的字节的数据,为预设的终止符对应的数据的情况下,确定当前读取的字节为终止字节。
17.根据权利要求14所述的装置,其中,所述起止单元还用于:
在当前读取的字节的数据,为预设的提取字节数指示数的情况下,确定当前读取的字节为起始字节。
18.根据权利要求17所述的装置,其中,所述起止单元还用于:
按照所述提取字节数指示数所指示的目标字节数,提取所述目标字节数对应的字节,确定提取的末位字节为终止字节。
19.根据权利要求11-18中任意一项所述的装置,其中,所述目标对象为所述文件中的图形,所述目标对象的子对象为所述图形的构成元素。
20.根据权利要求11-18中任意一项所述的装置,其中,所述进制数为二进制数。
21.一种电子设备,其特征在于,包括:
至少一个处理器;以及
与所述至少一个处理器通信连接的存储器;其中,
所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行权利要求1-9中任一项所述的方法。
22.一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使计算机执行权利要求1-9中任一项所述的方法。
23.一种计算机程序产品,包括计算机指令,该计算机指令被处理器执行时实现权利要求1-9中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011422429.1A CN112540958B (zh) | 2020-12-08 | 2020-12-08 | 文件处理方法、装置、设备及计算机存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011422429.1A CN112540958B (zh) | 2020-12-08 | 2020-12-08 | 文件处理方法、装置、设备及计算机存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112540958A true CN112540958A (zh) | 2021-03-23 |
CN112540958B CN112540958B (zh) | 2023-08-29 |
Family
ID=75019195
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011422429.1A Active CN112540958B (zh) | 2020-12-08 | 2020-12-08 | 文件处理方法、装置、设备及计算机存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112540958B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867818A (zh) * | 2021-09-28 | 2021-12-31 | 潍柴动力股份有限公司 | 一种ini文件的生成方法、装置、计算机设备及介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255494A (zh) * | 2018-01-30 | 2018-07-06 | 平安科技(深圳)有限公司 | 一种xml文件解析方法、装置、计算机设备及存储介质 |
CN111898340A (zh) * | 2020-07-30 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 文件的处理方法、设备及可读存储介质 |
WO2020233037A1 (zh) * | 2019-05-20 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置及存储介质 |
WO2020232872A1 (zh) * | 2019-05-22 | 2020-11-26 | 平安科技(深圳)有限公司 | 表格识别方法、装置、计算机设备和存储介质 |
-
2020
- 2020-12-08 CN CN202011422429.1A patent/CN112540958B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN108255494A (zh) * | 2018-01-30 | 2018-07-06 | 平安科技(深圳)有限公司 | 一种xml文件解析方法、装置、计算机设备及存储介质 |
WO2020233037A1 (zh) * | 2019-05-20 | 2020-11-26 | 深圳壹账通智能科技有限公司 | 数据处理方法、装置及存储介质 |
WO2020232872A1 (zh) * | 2019-05-22 | 2020-11-26 | 平安科技(深圳)有限公司 | 表格识别方法、装置、计算机设备和存储介质 |
CN111898340A (zh) * | 2020-07-30 | 2020-11-06 | 北京字节跳动网络技术有限公司 | 文件的处理方法、设备及可读存储介质 |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113867818A (zh) * | 2021-09-28 | 2021-12-31 | 潍柴动力股份有限公司 | 一种ini文件的生成方法、装置、计算机设备及介质 |
CN113867818B (zh) * | 2021-09-28 | 2024-04-16 | 潍柴动力股份有限公司 | 一种ini文件的生成方法、装置、计算机设备及介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112540958B (zh) | 2023-08-29 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US10824691B2 (en) | Page rendering method, device, and data storage medium | |
US10042834B2 (en) | Dynamic field extraction of data | |
US8738415B2 (en) | Automated workflow assignment to print jobs | |
US8903710B2 (en) | Synchro translation verification test for software applications | |
US10019426B2 (en) | Generating data format description language schema | |
CN112527374A (zh) | 标注工具生成方法、标注方法、装置、设备以及存储介质 | |
CN113031946A (zh) | 一种渲染页面组件的方法和装置 | |
CN113742530A (zh) | 基于svg实现数字化海报图片生成处理的系统、方法、装置、处理器及其存储介质 | |
CN109298898B (zh) | 云计算资源自动配置方法及装置 | |
CN112540958B (zh) | 文件处理方法、装置、设备及计算机存储介质 | |
CN110609981A (zh) | 文本处理方法以及装置、电子设备以及计算机可读存储介质 | |
US8656371B2 (en) | System and method of report representation | |
CN113656533A (zh) | 一种树形控件处理方法、装置及电子设备 | |
CN112862934A (zh) | 用于处理动画的方法、装置、设备、介质和产品 | |
CN112632425A (zh) | 一种离线资源文件的生成方法、装置、设备及存储介质 | |
CN115469849B (zh) | 一种业务处理系统、方法、电子设备和存储介质 | |
CN116245052A (zh) | 一种图纸迁移方法、装置、设备和存储介质 | |
US10896161B2 (en) | Integrated computing environment for managing and presenting design iterations | |
CN111273913B (zh) | 一种输出规范表示的应用程序接口数据的方法及装置 | |
CN115495362A (zh) | 生成测试代码的方法、装置、存储介质及计算机设备 | |
CN113138760B (zh) | 一种页面生成方法、装置、电子设备和介质 | |
CN114518881A (zh) | 一种页面生成方法、系统及存储介质 | |
CN114816972A (zh) | 着色语言的测试方法、装置、电子设备以及存储介质 | |
CN111240676A (zh) | 一种生成骨架屏的代码的方法及装置 | |
CN111190872B (zh) | 一种可继承可扩展的数据处理方法及其对解析日志的应用 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |