CN112463194B - 一种文件数据的兼容方法、装置、终端设备及存储介质 - Google Patents
一种文件数据的兼容方法、装置、终端设备及存储介质 Download PDFInfo
- Publication number
- CN112463194B CN112463194B CN202011380677.4A CN202011380677A CN112463194B CN 112463194 B CN112463194 B CN 112463194B CN 202011380677 A CN202011380677 A CN 202011380677A CN 112463194 B CN112463194 B CN 112463194B
- Authority
- CN
- China
- Prior art keywords
- file data
- interceptor
- data
- target
- group
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 70
- 238000006243 chemical reaction Methods 0.000 claims abstract description 101
- 230000008569 process Effects 0.000 claims abstract description 26
- 238000004590 computer program Methods 0.000 claims description 25
- 230000006870 function Effects 0.000 claims description 18
- 238000012545 processing Methods 0.000 description 13
- 230000004044 response Effects 0.000 description 4
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000001514 detection method Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 238000004891 communication Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000000802 evaporation-induced self-assembly Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000008439 repair process Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 230000009466 transformation Effects 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/60—Software deployment
- G06F8/65—Updates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/71—Version control; Configuration management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Stored Programmes (AREA)
Abstract
本申请适用于计算机技术领域,提供了一种文件数据的兼容方法、装置、终端设备及存储介质,该方法包括:在目标软件的新版本程序中的主程序模块运行过程中,若接收到目标软件的旧版本程序保存的初始文件数据的打开请求,获取初始文件数据;在初始文件数据不满足新版本程序的文件打开条件时,通过数据转换模块对初始文件数据进行转换,获得目标文件数据;通过主程序模块打开目标文件数据;本申请通过设置在新版本程序中的数据转换模块对新版本程序不能打开的初始文件数据进行转换,将初始文件数据转换成满足新版本程序的文件打开条件的文件数据,使新版本程序可以顺利打开旧版本程序保存的初始文件数据。
Description
技术领域
本申请属于数据处理技术领域,尤其涉及一种文件数据的兼容方法、装置、终端设备及存储介质。
背景技术
软件升级,指软件从低版本向高版本的更新。由于高版本常常修复低版本的部分BUG,所以经历了软件升级,一般都会比原版本的性能更好,得到优化的效果,用户也能有更好的体验。
新版本软件在运行过程中有时需要打开旧版本软件保存的文件数据,由于新版本软件和旧版本软件保存的文件数据的数据结构和数据类型等不同,在新版本软件打开旧版本软件保存的文件数据的过程中常常出现数据不兼容现象,造成旧版本软件保存的文件数据打开错误或打开失败等。
发明内容
本申请实施例提供了一种文件数据的兼容方法、装置、终端设备及存储介质,可以解决新版本软件和旧版本软件保存的文件数据不兼容的问题。
第一方面,本申请实施例提供了一种文件数据的兼容方法,包括:
在目标软件的新版本程序中的主程序模块运行过程中,若接收到所述目标软件的旧版本程序保存的初始文件数据的打开请求,获取所述初始文件数据,其中,所述新版本程序中包括主程序模块和数据转换模块;
在所述初始文件数据不满足所述新版本程序的文件打开条件时,通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据;
通过所述主程序模块打开所述目标文件数据。
第二方面,本申请实施例提供了一种文件数据的兼容装置,包括:
获取模块,用于在目标软件的新版本程序中的主程序模块运行过程中,若接收到所述目标软件的旧版本程序保存的初始文件数据的打开请求,获取所述初始文件数据,其中,所述新版本程序中包括主程序模块和数据转换模块;
数据转换模块,用于在所述初始文件数据不满足所述新版本程序的文件打开条件时,通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据;
主程序模块,用于通过所述主程序模块打开所述目标文件数据。
第三方面,本申请实施例提供了一种终端设备,包括:存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现上述第一方面中任一项所述的文件数据的兼容方法。
第四方面,本申请实施例提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现上述第一方面中任一项所述的文件数据的兼容方法。
第五方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在终端设备上运行时,使得终端设备执行上述第一方面中任一项所述的文件数据的兼容方法。
可以理解的是,上述第二方面至第五方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。
本申请实施例与现有技术相比存在的有益效果是:本申请在目标软件的新版本程序中的主程序模块运行过程中,若接收到所述目标软件的旧版本程序保存的初始文件数据的打开请求,获取所述初始文件数据,在所述初始文件数据不满足所述新版本程序的文件打开条件时,通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据,通过所述主程序模块打开所述目标文件数据;本申请通过设置在新版本程序中的数据转换模块对新版本程序不能打开的初始文件数据进行转换,将初始文件数据转换成满足新版本程序的文件打开条件的文件数据,使新版本程序可以顺利打开旧版本程序保存的初始文件数据,使新版本程序保存的文件数据和旧版本程序保存的文件数据可以兼容。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1是本申请一实施例提供的现有技术文件数据的兼容方法的应用场景示意图;
图2是本申请一实施例提供的文件数据的兼容方法的流程示意图;
图3是本申请一实施例提供的目标文件数据的获得方法的流程示意图;
图4是本申请一实施例提供的图3中第1候选数据的获得方法的流程示意图;
图5是本申请另一实施例提供的目标文件数据的获得方法的流程示意图;
图6是本申请一实施例提供的文件数据的兼容装置的结构示意图;
图7是本申请一实施例提供的终端设备的结构示意图。
具体实施方式
以下描述中,为了说明而不是为了限定,提出了诸如特定系统结构、技术之类的具体细节,以便透彻理解本申请实施例。然而,本领域的技术人员应当清楚,在没有这些具体细节的其它实施例中也可以实现本申请。在其它情况中,省略对众所周知的系统、装置、电路以及方法的详细说明,以免不必要的细节妨碍本申请的描述。
应当理解,当在本申请说明书和所附权利要求书中使用时,术语“包括”指示所描述特征、整体、步骤、操作、元素和/或组件的存在,但并不排除一个或多个其它特征、整体、步骤、操作、元素、组件和/或其集合的存在或添加。
还应当理解,在本申请说明书和所附权利要求书中使用的术语“和/或”是指相关联列出的项中的一个或多个的任何组合以及所有可能组合,并且包括这些组合。
如在本申请说明书和所附权利要求书中所使用的那样,术语“如果”可以依据上下文被解释为“当……时”或“一旦”或“响应于确定”或“响应于检测到”。类似地,短语“如果确定”或“如果检测到[所描述条件或事件]”可以依据上下文被解释为意指“一旦确定”或“响应于确定”或“一旦检测到[所描述条件或事件]”或“响应于检测到[所描述条件或事件]”。
另外,在本申请说明书和所附权利要求书的描述中,术语“第一”、“第二”、“第三”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
在本申请说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。
在软件使用过程中,经过升级后的新版本程序保存的文件数据和旧版本程序保存的文件数据的数据结构可能不同,造成新版本程序不能顺利打开旧版本程序保存的文件数据。
目前,解决上述问题的主要方法是通过软件开发人员在新版本程序中增加对旧版本程序保存的文件数据的数据进行处理的代码,例如,增加、删除或修改了哪些字段,对这些字段进行新版本文件的数据结构上的映射或转换,使旧版本程序保存的文件数据符合新版本程序的要求,保证新版本程序可以顺利打开旧版本程序保存的文件数据。
使用上述方法解决数据不兼容的问题,每更新一次文件数据的数据结构,需要在新版本程序中增加新的处理代码,这样在程序中增加代码的方法破坏了原有代码的结构以及稳定性,使程序不易维护。
如图1所示,在第一次软件更新时,需要打开V1版本文件数据的字段A的代码进行修改;第二次软件更新时,需要继续将打开V2版本文件数据的字段B的代码进行修改;以此类推,软件不断更新,需要修改的代码越来越多。
本申请在程序中增加数据转换模块,只需在软件更新,且在第一次数据结构变化时修改程序中的代码。在后续数据结构发生变化时,只需在数据转换模块中增加代码文件,代码文件用于对旧版本程序保存的文件数据进行处理,不需要改变原有代码,保证原有代码的完整和稳定性。即使出现问题,也只需查找数据转换模块中的新增代码,使维护更简单。
图2示出了本申请提供的文件数据的兼容方法的示意性流程图,参照图2,对该方法的详述如下:
S101,在目标软件的新版本程序中的主程序模块运行过程中,若接收到所述目标软件的旧版本程序保存的初始文件数据的打开请求,获取所述初始文件数据,其中,所述新版本程序中包括主程序模块和数据转换模块。
在本实施例中,目标软件为安装在终端设备或处理器上的软件。在对目标软件进行更新时,需要下载或从外部获取新版本程序以代替旧版本程序,然后在处理器或终端设备中运行新版本程序。
新版本程序中设有主程序模块和数据转换模块。主程序模块中存储目标软件运行时需要的主要代码。数据转换模块中存储用于处理旧版本程序保存的文件数据的代码。也就是在新版本程序运行过程中,遇到不兼容的旧版本程序保存的文件数据时,可以调用数据转换模块中的代码对不兼容的文件数据进行处理,得到与新版本程序兼容的文件数据,以便于新版本程序可以顺利打开此文件数据。
旧版本程序保存的初始文件数据可以为用户使用旧版本程序时用户保存的文件数据,还可以是旧版本程序遗留下来的文件数据,也就是在软件更新时没有更新的旧版本程序中的文件数据。
作为举例,软件A开始是03版的软件,用户在使用03版的软件时,保存了文件数据1和文件数据2。在软件A更新到07版的软件后,文件数据1和文件数据2为旧版本程序保存的初始文件数据。
软件A开始是03版的软件,03版的软件运行时自身保存的文件数据包括文件数据3和文件数据4。在软件A进行升级时,文件数据3进行了升级,但是文件数据4没有被升级,文件数据4被遗留下来了,因此,在软件A进行升级后,文件数据4即为旧版本程序保存的初始文件数据。
在本实施例中,获取初始文件数据可以从终端设备或处理器中获取,也就是从存储旧版本程序保存的初始文件数据中的地址中获取。
S102,在所述初始文件数据不满足所述新版本程序的文件打开条件时,通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据。
具体的,在获取到初始文件数据之后,需要判断初始文件数据是否满足新版本程序的文件打开条件,也就是判断新版本程序是否可以打开初始文件数据。
在本实施例中,满足文件打开条件可以包括数据结构、数据类型和/或数据格式等是否与新版本程序保存的文件数据的数据结构、数据类型和/或数据格式相同。
作为举例,如果文件打开条件为打开.doc和.xml格式的文件数据。如果初始文件数据为PDF格式的文件,则初始文件数据不满足新版本程序的文件打开条件。如果初始文件数据为.doc格式的文件,则初始文件数据满足新版本程序的文件打开条件。
在本实施例中,在初始文件数据不满足文件打开条件时,将初始文件数据传输至数据转换模块,需要运行数据转换模块对初始文件数据进行转换,得到满足文件打开条件的目标文件数据。
数据转换模块对初始文件数据进行转换可以包括对数据结构的转换、对数据类型的转换和/或对数据格式的转换等。
S103,通过所述主程序模块打开所述目标文件数据。
在本实施例中,在数据转换模块将初始文件数据转换成目标文件数据后,则可以继续运行主程序模块,使用新版本程序的主程序模块打开目标文件数据。
本申请实施例中,在目标软件的新版本程序中的主程序模块运行过程中,若接收到目标软件的旧版本程序保存的初始文件数据的打开请求,获取初始文件数据,在初始文件数据不满足新版本程序的文件打开条件时,通过数据转换模块对初始文件数据进行转换,获得目标文件数据,通过主程序模块打开目标文件数据;本申请通过设置在新版本程序中的数据转换模块对新版本程序不能打开的初始文件数据进行转换,将初始文件数据转换成满足新版本程序的文件打开条件的文件数据,使新版本程序可以顺利打开旧版本程序保存的初始文件数据,使新版本程序保存的文件数据和旧版本程序保存的文件数据可以兼容。
在一种可能的实现方式中,在步骤S101之后,上述方法还可以包括:
S201,在所述初始文件数据满足所述新版本程序的文件打开条件时,通过所述主程序模块打开所述初始文件数据。
在本实施例中,如果初始文件数据满足文件打开条件,初始文件数据不用进行转换,则可以直接用主程序模块打开初始文件数据。
在一种可能的实现方式中,步骤S102的实现过程可以包括:
S1021,通过所述数据转换模块中的拦截器对所述初始文件数据进行转换,获得目标文件数据。
在本实施例中,拦截器主要完成请求参数的解析、将页面表单参数赋给值栈中相应属性、执行功能检验、程序异常调试等工作。
具体的,拦截器由代码组成。数据转换模块中可以包括一个或多个拦截器,每个拦截器完成一个功能,例如,拦截器A将初始文件数据a从PDF格式转换成.doc格式;拦截器B将初始文件数据b从PDF格式转换成.doc格式;拦截器C将经过拦截器B转换得到的.doc格式的文件数据转换成.xml格式的文件数据。
可选的,多个拦截器可以是链式结构,也就是串联在一起,执行完一个拦截器接着执行下一个拦截器,直到所有拦截器均执行完毕。
可选的,数据转换模块包括至少一个拦截器组和拦截器列表,每个拦截器组中包括至少一个拦截器,在拦截器组中包括至少两个拦截器时,同一个拦截器组中的至少两个拦截器为链式结构。
可选的,多个拦截器还可以互不干预,每个拦截器为互相独立的个体,数据转换模块中设有拦截器列表,拦截器列表中存储各个拦截器的索引值、各个拦截器的功能等。通过数据转换模块从拦截器列表中查找需要使用的拦截器,然后将初始文件数据或需要处理的文件数据发送至对应的拦截器进行转换。
本申请实施例中,通过数据转换模块中的拦截器对初始文件数据进行转换,可以得到目标文件数据。数据转换模块中的拦截器可以设置多个,因此,在设置有数据转换模块后,再对目标软件进行更新时,只需在数据转换模块中增加相应代码的拦截器即可,不用改变新版本程序中代码的结构,简单方便,且效率高。
如图3所示,在一种可能的实现方式中,数据转换模块包括多个拦截器,且所述多个拦截器为链式结构,步骤S1021的实现过程可以包括:
S10211,将所述初始文件数据输入所述数据转换模块中的第1个拦截器,获得第1个候选数据。
在本实施例中,由于数据转换模块中的拦截器时链式结构,因此,必须一个拦截器一个拦截器按照顺序运行,因此只需要将初始文件数据输入第1个拦截器中即可。第1个拦截器接收到初始文件数据之后,运行第1个拦截器,可以得到第1个候选数据。
在本实施例中,第1个拦截器可以对初始文件数据进行转换,也可以对初始文件数据不进行转换。
如图4所示,具体的,步骤S10211的实现过程可以包括:
S102111,判断是否需要对所述初始文件数据进行第一转换。
在本实施例中,由于每个拦截器的功能不同,也就是处理的文件数据和得到的文件数据不同,因此,需要先判断是否需要对接收到的文件数据进行转换。因此,拦截器中存储有判断代码。第一转换可以是数据结构的转换等,可以根据需要设置。
S102112,在不需要对所述初始文件数据进行第一转换时,将所述初始文件数据作为所述第1个候选数据。
在本实施例中,在不需要对所述初始文件数据进行第一转换时,说明第1个拦截器不是对初始文件数据进行处理的拦截器,则可以直接输出初始文件数据。
S102113,在需要对所述初始文件数据进行第一转换时,对所述初始文件数据进行第一转换后得到第1个候选数据。
在本实施例中,在需要对所述初始文件数据进行第一转换时,说明第1个拦截器是对初始文件数据进行处理的拦截器,则需要利用第1拦截器对初始文件数据进行第一转换,得到转换后的文件数据,记为第1个候选数据。
作为举例,初始文件数据为字段a,第1个拦截器是对字段a进行转换,则对字段a进行第一转换后得到第1个候选数据;如果第1个拦截器不是对字段a进行转换的,则直接输出初始文件数据,将初始文件数据作为第1个候选数据。
S10212,向所述数据转换模块中的第i个拦截器发送所述第i-1个候选数据,获得第i个候选数据,其中,所述第i-1个候选数据为第i-1个拦截器输出的数据,i为从2开始的正整数。
在本实施例中,第1个拦截器运行完毕后,将第1候选数据传输至第2拦截器,得到第2候选数据;然后第2个拦截器将第2候选数据传输至第3个拦截器,得到第3候选数据;依次运行数据转换模块中拦截器,得到对应的候选数据。
S10213,在获得所述数据转换模块中的最后一个拦截器获得的最后一个候选数据后,将所述最后一个候选数据作为所述目标文件数据。
在本实施例中,在数据转换模块中的最后一个拦截器运行完毕后,得到最后一个候选数据,最后一个候选数据即为目标文件数据。
在本实施例中,在数据转换模块中所有的拦截器为链式结构时,每个拦截器在接收到上一个拦截器传输的文件数据之后(第一个拦截器接收到初始文件数据之后),需要先判断是否需要对接收到的文件数据进行转换,如果不需要对接收到的文件数据进行转换,则直接数据该文件数据,如果需要对接收到的文件数据进行转换,则对接收到的文件数据进行转换后输出转换后的文件数据。
作为举例,如果数据转换模块包括三个拦截器,三个拦截器为链式结构。第1个拦截器可以将字段b进行第一转换,得到字段b’。第2个拦截器可以将字段c进行第二转换,得到字段c’。第3个拦截器可以将字段d进行第三转换,得到字段d’。
初始文件数据为字段c,将字段c输入第1个拦截器,经过判断后,第1个拦截器不用对字段c进行处理,则第1个拦截器将初始文件数据作为第1个候选数据传输至第2个拦截器。
第2个拦截器获取到第1个候选数据后,经过判断,第2个拦截器需要对字段c进行处理,则第2个拦截器对第1候选数据进行处理后,得到字段c’,字段c’为第2个候选数据,并将第2个候选数据传输至第3个拦截器。
第3个拦截器获取到第2个候选数据后,经过判断,第3个拦截器不用对第2个候选数据进行处理,则第3个拦截器将第2个候选数据作为第3个候选数据输出。第3个候选数据即为目标文件数据。
本申请实施例中,通过链式结构的拦截器,可以对初始文件数据进行转换后得到目标文件数据,链式结构的拦截器结构简单,将所有拦截器均运行一遍,不会遗漏对初始文件数据的处理,使得到的目标文件数据更准确。
如图5所示,在一种可能的实现方式中,数据转换模块包括至少一个拦截器组和拦截器列表,拦截器组中包括至少两个拦截器,同一个拦截器组中的至少两个拦截器为链式结构,步骤S1021的实现过程可以包括:
S10214,基于所述初始文件数据和所述拦截器列表中存储的拦截器组的功能,确定用于转换所述初始文件数据的目标拦截器组。
在本实施例中,拦截器组的功能可以包括拦截器组所处理的初始文件数据的名称或关键字,还可以是拦截器组与初始文件数据的对应关系。
作为举例,拦截器列表中可以存储拦截器组1的功能为对字段a进行转换;拦截器组2的功能为对字段b进行转换等。
在本实施例中,数据转换模块在接收到初始文件数据后,从拦截器列表中查找用于处理初始文件数据的拦截器组,得到目标拦截器组。
S10215,基于所述目标拦截器组中第1个拦截器的索引值,向所述目标拦截器组中的第1个拦截器发送所述初始文件数据,其中,所述第1个拦截器的索引值从所述拦截器列表中获得。
在本实施例中,拦截器列表中还存储有各个拦截器的索引值,由于需要将初始文件数据传输至拦截器组中的第1个拦截器中,则需要得到拦截器组中第1个拦截器的索引值,根据第1个拦截器的索引值将初始文件数据传输至第1个拦截器。
S10216,通过所述目标拦截器组中的拦截器对所述初始文件数据进行转换,得到所述目标文件数据。
在本实施例中,拦截器组中第1个拦截器接收到初始文件数据后,然后依次运行拦截器组中所有的拦截器,对初始文件数据进行转换,得到目标文件数据。
在本实施例中,由于将拦截器进行分组,因此,每个拦截器组中需要对初始文件数据进行一种处理,也就是需要得到目标文件数据必须经过拦截器组中所有的拦截器对文件数据的转换,最终才能得到目标文件数据,因此,拦截器组中不存在不对文件数据进行转换的拦截器。如果一个拦截器组中存在不对文件数据进行转换的拦截器,那么这个拦截器就是多余的拦截器,可以不比存在于该拦截器组。
可选的,如果拦截器组中存在不对文件数据进行处理的拦截器,则需要在拦截器组中每个拦截器中设置一个判断条件,具体的,可以参照步骤102111至步骤S102113。
具体的,步骤S10216的实现过程可以包括:
S102161,通过所述目标拦截器组中的第1个拦截器对所述初始文件数据进行第一数据转换,获得第一个数据。
S102162,向所述目标拦截器组中的第j个拦截器发送所述第j-1个数据,获得第j个数据,其中,所述第j-1个数据为第j-1个拦截器输出的数据,j为从2开始的正整数。
S102163,在获得所述目标拦截器组中的最后一个拦截器获得的最后一个数据后,将所述最后一个数据作为所述目标文件数据。
在本实施例中,依次运行目标拦截器组中的拦截器,每个拦截器均需要对接收到的文件数据进行转换,最终得到目标文件数据。
作为举例,如果拦截器列表中包括拦截器组1和拦截器组2,拦截器组1对初始文件数据A进行转换,拦截器组2对初始文件数据B进行转换。
如果数据转换模块接收到初始文件数据B,则经过查找,目标拦截器组为拦截器组2。
拦截器组2中包括两个拦截器,分别为拦截器1和拦截器2,拦截器1对初始文件数据B进行转换得到B’,B’为第1个数据。
拦截器2对B’进行转换得到B”,B”为第2个数据,且B”为目标文件数据。
本申请实施例中,通过将拦截器划分成小组,可以使拦截器设置更简单,同时在对初始文件数据进行处理时,不需要运行所有的拦截器,只需要运行目标拦截器组中的拦截器即可得到目标文件数据。提高了运行速度和数据处理的速度。
在一种可能的实现方式中,数据转换模块包括至少一个拦截器和拦截器列表,每个拦截器单独存在,步骤S1021的实现过程可以包括:
基于所述初始文件数据和所述拦截器列表中存储的拦截器的功能,确定用于转换所述初始文件数据的目标拦截器,其中,目标拦截器的个数为一个或多个;
在目标拦截器的个数为一个时,基于所述拦截器列表中存储的目标拦截器的索引值,向目标拦截器发送初始文件数据,通过目标拦截器对初始文件数据进行转换,得到目标文件数据。
在目标拦截器的个数为多个时,基于所述拦截器列表中存储的各个拦截器的索引值,向第一个目标拦截器发送初始文件数据,通过第一个目标拦截器对初始文件数据进行转换,得到第一个数据;
基于所述拦截器列表中存储的各个拦截器的索引值,向第z个目标拦截器发送第z-1个数据,通过第z个目标拦截器对第z-1个数据进行转换,得到第z个数据;
在获得最后一个目标拦截器输出的最后一个数据后,将所述最后一个数据作为所述目标文件数据。
作为举例,如果需要对初始文件数据D进行转换,在拦截器列表中查找到,将初始文件数据D转换成满足新版本程序的文件打开条件的目标文件数据,需要先使用拦截器M,然后再使用拦截器N。
则数据转换模块先将初始文件数据D输入至拦截器M,通过拦截器M对初始文件数据D进行转换,得到D’。然后数据转换模块将D’输入拦截器N中,得到D”。D”为目标文件数据。
本申请实施例中,基于数据转换模块和拦截器列表,将文件数据分配至各个拦截器,可以得到目标文件数据。
应理解,上述实施例中各步骤的序号的大小并不意味着执行顺序的先后,各过程的执行顺序应以其功能和内在逻辑确定,而不应对本申请实施例的实施过程构成任何限定。
对应于上文实施例所述的文件数据的兼容方法,图6示出了本申请实施例提供的文件数据的兼容装置的结构框图,为了便于说明,仅示出了与本申请实施例相关的部分。
参照图6,该装置300可以包括:获取模块310、数据转换模块320和主程序模块330。
其中,获取模块310,用于在目标软件的新版本程序中的主程序模块运行过程中,若接收到所述目标软件的旧版本程序保存的初始文件数据的打开请求,获取所述初始文件数据,其中,所述新版本程序中包括主程序模块和数据转换模块;
数据转换模块320,用于在所述初始文件数据不满足所述新版本程序的文件打开条件时,通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据;
主程序模块330,用于通过所述主程序模块打开所述目标文件数据。
在一种可能的实现方式中,主程序模块330具体还可以用于:
在所述初始文件数据满足所述新版本程序的文件打开条件时,通过所述主程序模块打开所述初始文件数据。
在一种可能的实现方式中,数据转换模块320具体可以包括:
数据转换单元,用于通过所述数据转换模块中的拦截器对所述初始文件数据进行转换,获得目标文件数据。
在一种可能的实现方式中,所述数据转换模块包括多个拦截器,且所述多个拦截器为链式结构;
数据转换单元具体可以用于:
将所述初始文件数据输入所述数据转换模块中的第1个拦截器,获得第1个候选数据;
向所述数据转换模块中的第i个拦截器发送第i-1个候选数据,获得第i个候选数据,其中,所述第i-1个候选数据为第i-1个拦截器输出的数据,i为从2开始的正整数;
在获得所述数据转换模块中的最后一个拦截器获得的最后一个候选数据后,将所述最后一个候选数据作为所述目标文件数据。
在一种可能的实现方式中,数据转换单元具体还可以用于:
判断是否需要对所述初始文件数据进行第一转换;
在不需要对所述初始文件数据进行第一转换时,将所述初始文件数据作为所述第1个候选数据;
在需要对所述初始文件数据进行第一转换时,对所述初始文件数据进行第一转换后得到第1个候选数据。
在一种可能的实现方式中,所述数据转换模块包括至少一个拦截器组和拦截器列表,所述拦截器组中包括至少两个拦截器,同一个拦截器组中的至少两个拦截器为链式结构;
数据转换单元具体还可以用于:
基于所述初始文件数据和所述拦截器列表中存储的拦截器组的功能,确定用于转换所述初始文件数据的目标拦截器组;
基于所述目标拦截器组中第1个拦截器的索引值,向所述目标拦截器组中的第1个拦截器发送所述初始文件数据,其中,所述第1个拦截器的索引值从所述拦截器列表中获得;
通过所述目标拦截器组中的拦截器对所述初始文件数据进行转换,得到所述目标文件数据。
在一种可能的实现方式中,数据转换单元具体还可以用于:
通过所述目标拦截器组中的第1个拦截器对所述初始文件数据进行第一数据转换,获得第一个数据;
向所述目标拦截器组中的第j个拦截器发送所述第j-1个数据,获得第j个数据,其中,所述第j-1个数据为第j-1个拦截器输出的数据,j为从2开始的正整数;
在获得所述目标拦截器组中的最后一个拦截器获得的最后一个数据后,将所述最后一个数据作为所述目标文件数据。
需要说明的是,上述装置/单元之间的信息交互、执行过程等内容,由于与本申请方法实施例基于同一构思,其具体功能及带来的技术效果,具体可参见方法实施例部分,此处不再赘述。
所属领域的技术人员可以清楚地了解到,为了描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即将所述装置的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元、模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
本申请实施例还提供了一种终端设备,参见图7,该终端设备400可以包括:至少一个处理器410、存储器420以及存储在所述存储器420中并可在所述至少一个处理器410上运行的计算机程序,所述处理器410执行所述计算机程序时实现上述任意各个方法实施例中的步骤,例如图2所示实施例中的步骤S101至步骤S103。或者,处理器410执行所述计算机程序时实现上述各装置实施例中各模块/单元的功能,例如图6所示模块310至330的功能。
示例性的,计算机程序可以被分割成一个或多个模块/单元,一个或者多个模块/单元被存储在存储器420中,并由处理器410执行,以完成本申请。所述一个或多个模块/单元可以是能够完成特定功能的一系列计算机程序段,该程序段用于描述计算机程序在终端设备400中的执行过程。
本领域技术人员可以理解,图7仅仅是终端设备的示例,并不构成对终端设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件,例如输入输出设备、网络接入设备、总线等。
处理器410可以是中央处理单元(Central Processing Unit,CPU),还可以是其他通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现成可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器420可以是终端设备的内部存储单元,也可以是终端设备的外部存储设备,例如插接式硬盘,智能存储卡(Smart Media Card,SMC),安全数字(Secure Digital,SD)卡,闪存卡(Flash Card)等。所述存储器420用于存储所述计算机程序以及终端设备所需的其他程序和数据。所述存储器420还可以用于暂时地存储已经输出或者将要输出的数据。
总线可以是工业标准体系结构(Industry Standard Architecture,ISA)总线、外部设备互连(Peripheral Component,PCI)总线或扩展工业标准体系结构(ExtendedIndustry Standard Architecture,EISA)总线等。总线可以分为地址总线、数据总线、控制总线等。为便于表示,本申请附图中的总线并不限定仅有一根总线或一种类型的总线。
本申请实施例提供的文件数据的兼容方法可以应用于计算机、平板电脑、笔记本电脑、上网本、个人数字助理(personal digital assistant,PDA)等终端设备上,本申请实施例对终端设备的具体类型不作任何限制。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现可实现上述文件数据的兼容方法各个实施例中的步骤。
本申请实施例提供了一种计算机程序产品,当计算机程序产品在移动终端上运行时,使得移动终端执行时实现可实现上述文件数据的兼容方法各个实施例中的步骤。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本申请实现上述实施例方法中的全部或部分流程,可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一计算机可读存储介质中,该计算机程序在被处理器执行时,可实现上述各个方法实施例的步骤。其中,所述计算机程序包括计算机程序代码,所述计算机程序代码可以为源代码形式、对象代码形式、可执行文件或某些中间形式等。所述计算机可读介质至少可以包括:能够将计算机程序代码携带到拍照装置/终端设备的任何实体或装置、记录介质、计算机存储器、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,RandomAccess Memory)、电载波信号、电信信号以及软件分发介质。例如U盘、移动硬盘、磁碟或者光盘等。在某些司法管辖区,根据立法和专利实践,计算机可读介质不可以是电载波信号和电信信号。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述或记载的部分,可以参见其它实施例的相关描述。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的实施例中,应该理解到,所揭露的装置/网络设备和方法,可以通过其它的方式实现。例如,以上所描述的装置/网络设备实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通讯连接可以是通过一些接口,装置或单元的间接耦合或通讯连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
以上所述实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的精神和范围,均应包含在本申请的保护范围之内。
Claims (6)
1.一种文件数据的兼容方法,其特征在于,包括:
在目标软件的新版本程序中的主程序模块运行过程中,若接收到所述目标软件的旧版本程序保存的初始文件数据的打开请求,获取所述初始文件数据,其中,所述新版本程序中包括主程序模块和数据转换模块;
在所述初始文件数据不满足所述新版本程序的文件打开条件时,通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据;
通过所述主程序模块打开所述目标文件数据;
所述通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据,包括:
通过所述数据转换模块中的拦截器对所述初始文件数据进行转换,获得目标文件数据,所述数据转换模块包括至少一个拦截器组和拦截器列表,所述拦截器组中包括至少两个拦截器,同一个拦截器组中的至少两个拦截器为链式结构;
所述通过所述数据转换模块中的拦截器对所述初始文件数据进行转换,获得目标文件数据,包括:
基于所述初始文件数据和所述拦截器列表中存储的拦截器组的功能,确定用于转换所述初始文件数据的目标拦截器组;
基于所述目标拦截器组中第1个拦截器的索引值,向所述目标拦截器组中的第1个拦截器发送所述初始文件数据,其中,所述第1个拦截器的索引值从所述拦截器列表中获得;
通过所述目标拦截器组中的拦截器对所述初始文件数据进行转换,得到所述目标文件数据。
2.如权利要求1所述的文件数据的兼容方法,其特征在于,在所述获取所述初始文件数据之后,还包括:
在所述初始文件数据满足所述新版本程序的文件打开条件时,通过所述主程序模块打开所述初始文件数据。
3.如权利要求1所述的文件数据的兼容方法,其特征在于,所述通过所述目标拦截器组中的拦截器对所述初始文件数据进行转换,得到所述目标文件数据,包括:
通过所述目标拦截器组中的第1个拦截器对所述初始文件数据进行第一数据转换,获得第一个数据;
向所述目标拦截器组中的第j个拦截器发送所述第j-1个数据,获得第j个数据,其中,所述第j-1个数据为第j-1个拦截器输出的数据,j为从2开始的正整数;
在获得所述目标拦截器组中的最后一个拦截器获得的最后一个数据后,将所述最后一个数据作为所述目标文件数据。
4.一种文件数据的兼容装置,其特征在于,包括:
获取模块,用于在目标软件的新版本程序中的主程序模块运行过程中,若接收到所述目标软件的旧版本程序保存的初始文件数据的打开请求,获取所述初始文件数据,其中,所述新版本程序中包括主程序模块和数据转换模块;
数据转换模块,用于在所述初始文件数据不满足所述新版本程序的文件打开条件时,通过所述数据转换模块对所述初始文件数据进行转换,获得目标文件数据;
主程序模块,用于通过所述主程序模块打开所述目标文件数据;
数据转换模块包括数据转换单元;
数据转换单元,用于通过所述数据转换模块中的拦截器对所述初始文件数据进行转换,获得目标文件数据,所述数据转换模块包括至少一个拦截器组和拦截器列表,所述拦截器组中包括至少两个拦截器,同一个拦截器组中的至少两个拦截器为链式结构;
数据转换单元,还用于基于所述初始文件数据和所述拦截器列表中存储的拦截器组的功能,确定用于转换所述初始文件数据的目标拦截器组;基于所述目标拦截器组中第1个拦截器的索引值,向所述目标拦截器组中的第1个拦截器发送所述初始文件数据,其中,所述第1个拦截器的索引值从所述拦截器列表中获得;通过所述目标拦截器组中的拦截器对所述初始文件数据进行转换,得到所述目标文件数据。
5.一种终端设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,其特征在于,所述处理器执行所述计算机程序时实现如权利要求1至3任一项所述的文件数据的兼容方法。
6.一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现如权利要求1至3任一项所述的文件数据的兼容方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011380677.4A CN112463194B (zh) | 2020-11-30 | 2020-11-30 | 一种文件数据的兼容方法、装置、终端设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011380677.4A CN112463194B (zh) | 2020-11-30 | 2020-11-30 | 一种文件数据的兼容方法、装置、终端设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112463194A CN112463194A (zh) | 2021-03-09 |
CN112463194B true CN112463194B (zh) | 2023-12-15 |
Family
ID=74805169
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011380677.4A Active CN112463194B (zh) | 2020-11-30 | 2020-11-30 | 一种文件数据的兼容方法、装置、终端设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112463194B (zh) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110457256A (zh) * | 2019-08-01 | 2019-11-15 | 大众问问(北京)信息科技有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
CN110716720A (zh) * | 2018-07-12 | 2020-01-21 | 北京京东尚科信息技术有限公司 | 一种实现应用热部署的方法和装置 |
-
2020
- 2020-11-30 CN CN202011380677.4A patent/CN112463194B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110716720A (zh) * | 2018-07-12 | 2020-01-21 | 北京京东尚科信息技术有限公司 | 一种实现应用热部署的方法和装置 |
CN110457256A (zh) * | 2019-08-01 | 2019-11-15 | 大众问问(北京)信息科技有限公司 | 数据存储方法、装置、计算机设备及存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN112463194A (zh) | 2021-03-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20130006909A1 (en) | Pattern-regognition processor with matching-data reporting module | |
US20130339779A1 (en) | Systematic failure remediation | |
CN112147983B (zh) | 一种车辆诊断方法、装置、电子设备及存储介质 | |
CN111143446A (zh) | 数据对象的数据结构转换处理方法、装置及电子设备 | |
CN112068874B (zh) | 软件项目持续集成方法、装置、终端设备和存储介质 | |
CN112083709B (zh) | 车辆诊断方法、系统、终端设备及存储介质 | |
CN102203757B (zh) | 用于冻结对象的类型描述符管理 | |
CN113010116A (zh) | 一种数据处理方法、装置、终端设备及可读存储介质 | |
CN112463194B (zh) | 一种文件数据的兼容方法、装置、终端设备及存储介质 | |
CN110968339B (zh) | 前端构建工具的方法、装置以及电子设备 | |
CN109324838B (zh) | 单片机程序的执行方法、执行装置及终端 | |
CN111694586A (zh) | 程序初始化方法、程序初始化装置、终端设备及存储介质 | |
CN113760237A (zh) | 编译地址的更新方法、装置、终端设备及可读存储介质 | |
CN114611471A (zh) | 一种电子文档的读取方法、装置、电子设备及存储介质 | |
CN114021133A (zh) | 代码处理方法、装置、电子设备和存储介质 | |
CN111651195A (zh) | 一种系统依赖包冲突检测方法及装置 | |
CN112114978A (zh) | 电子秤数据更新方法、装置、设备以及可读存储介质 | |
CN112711584A (zh) | 一种数据检查方法、检查装置、终端设备及可读存储介质 | |
CN117076546B (zh) | 数据处理方法、终端设备及计算机可读存储介质 | |
CN117349267B (zh) | 一种数据库迁移处理方法及系统 | |
CN111967240B (zh) | 文本解析方法、装置、终端设备及计算机可读存储介质 | |
CN112364581B (zh) | 自动在寄存器传输级设计文件中插入特定代码的方法及装置 | |
CN112910950B (zh) | 一种待上链数据的上链方法、装置以及区块链节点设备 | |
CN113535710B (zh) | 一种搜索方法、装置、终端设备及存储介质 | |
CN113220334B (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 |