基于光标定位的修改文件传输、合并方法及系统与流程

文档序号:13072649阅读:125来源:国知局
基于光标定位的修改文件传输、合并方法及系统与流程

本发明涉及一种文件存储技术,具体涉及一种基于光标定位的修改文件的传输、合并方法及系统。



背景技术:

随着网络技术的不断发展,人们越来越多的将文件存储在服务器中,便于随时调用。当需要对服务器已存储的文件进行修改时,目前常用的方法有两种,一种是将修改后的原文件直接从客户端上传到服务器上,在服务器上覆盖原文件,另一种是对比原文件和修改文件的不同,找出差异数据,将差异数据上传到服务器进行保存,在需要的时候与原始文件进行合并,所述的“合并”就是利用差异数据在原文件中进行简单的替换修改。

然而,将原文件直接上传会占用较大的带宽,适用于小文件的上传,对于大文件发生微小修改/变动就进行整体文件上传来说,会占用较多的网络带宽资源。

对比原文件和修改文件以提供差异数据再进行保存的方式,能够在一定程度上节省网络带宽,但是如果要做全文对比,在大数据时代,这种方式需要消耗更多的内存和cpu资源,也不可取。

因此,现有的解决方案针对小文件的处理是可行的,但是对于大文件的上传处理,或多或少的在网络io、cpu以及内存上都会出现占用资源较多的问题。



技术实现要素:

为了便于进行大文件上传和减少文件上传过程中的系统资源占用,本发明实施例提供一种基于光标定位的修改文件的传输方法,包括以下步骤:

步骤1:实时获取修改文件光标定位位置信息;

步骤2:针对当前获取的修改文件的光标定位位置信息,从修改文件中提取相应的文件提取内容,判断修改文件的所述文件提取内容与原始文件的相关内容相比是否发生了变化;

步骤3:如果修改文件的所述文件提取内容与原始文件的段落中相关内容相比发生了变化,生成修改文件的每个所获取的光标定位位置的一条差异文件记录,存储到数组中;

步骤4:判断是否完成了原始文件的修改,如果没有完成原始文件的修改,则返回步骤1;

步骤5:原始文件完成修改后,根据所述数组中存储的修改文件的每个所获取的光标定位位置处的差异文件记录生成差异文件;

步骤6:传输生成的差异文件,从而能够将差异文件用于与原始文件进行合并。

进一步,所述修改文件光标定位信息包括光标停留处的段落号。

进一步,所述修改文件光标定位信息还包括光标段落中停留的起始字符序号。

进一步,步骤2中,从修改文件中提取所获取的光标定位位置开始到所在段落结束的文件提取内容,判断修改文件的所述文件提取内容与原始文件的段落中相关内容相比是否发生了变化。

进一步,差异文件记录包括修改文件光标定位位置信息、操作属性、起始字符序号移动数和修改文件的所述文件提取内容。

进一步,步骤3中,与修改文件的光标定位位置在段落中的起始字符序号对应的原始文件在该段落中的起始字符序号如下确定:修改文件的起始字符序号减去该起始字符序号之前修改增加的字符序号移动数并加上该起始字符序号之前减少的字符序号移动数;

修改文件的所述文件提取内容与原始文件的相关内容相比,变化的字符数减去修改文件的光标定位位置在段落中的起始字符序号之后增加的字符序号移动数并加上该起始字符序号之后减少的字符序号移动数,所得值的绝对值为当前修改文件的光标定位位置处的字符序号移动数,所得值为正数表示操作属性增加,所得值为负数表示操作属性为删除。

本发明实施例还提供一种基于光标定位的修改文件的合并方法,包括以下步骤:

步骤21:服务器端从客户端接收使用上述传输方法传输的差异文件;

步骤22:服务器端将差异文件与原始文件进行合并。

本发明实施例还提供一种基于光标定位的修改文件的传输系统,包括光标定位位置信息获取装置、文件提取内容判断处理装置、原始文件修改完成判断装置、差异文件生成装置和差异文件传输装置,其中,

光标定位位置信息获取装置用于实时获取修改文件的光标定位位置信息;

文件提取内容判断处理装置用于针对当前获取的修改文件的光标定位位置信息,从修改文件中提取相应的文件提取内容,判断修改文件的所述文件提取内容与原始文件的相关内容相比是否发生了变化,如果修改文件的所述文件提取内容与原始文件的段落中相关内容相比发生了变化,则将相关差异文件记录信息存储在数组中;

原始文件修改完成判断装置用于判断是否完成了原始文件的修改;

差异文件生成装置用于在原始文件完成修改后,根据所述数组中存储的修改文件的每个所获取的光标定位位置处的差异文件记录生成差异文件;

差异文件传输装置用于传输生成的差异文件。

进一步,在所述数组中仅保存修改文件的同一光标定位位置的最后一次的差异文件记录。

本发明实施例还提供一种基于光标定位的修改文件的合并系统,包括服务器端的差异文件接收装置和差异文件合并装置,

差异文件接收装置用于从客户端的上述传输系统中接收差异文件;

差异文件合并装置用于将差异文件与原始文件进行合并。

本发明实施例的技术方案是通过采用浏览器技术进行辅助,在浏览的文本组件上进行浏览和修改文件,然后通过定位用户对文件修改的行列信息,获取修改的行内容;与原始文件进行对比;传输差异内容;将段落号以及起始字符序号和差异内容构成一个差异文件,通过网络上传到服务器上。服务器再通过逆向合并差异文件,形成最终的文件。

由此,本发明实施例的技术方案无需对全篇文件进行比较,只需要对比修改部分的内容,减少了系统的计算量,降低了对cpu和内存资源占用;并且,由于只上传修改部分的内容以及文件的位置信息,降低了对网络io的占用。

附图说明

图1是本发明实施例的基于光标定位的修改文件的传输方法流程图;

图2是本发明实施例的基于光标定位的修改文件的合并方法流程图;

图3是本发明实施例的基于光标定位的修改文件的传输系统和合并系统的系统框图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。

如图1所示,本发明实施例的基于光标定位的修改文件的传输方法包括以下步骤:

步骤1:客户端实时获取修改文件光标定位位置信息。

用户在浏览器上对原始文件进行修改时,会通过单击或双击鼠标按键的方式,将光标移动并停留到修改位置进行删除、添加、修改(字符数不变)操作,浏览器组件通过javascript实时获取用户在修改文件上的光标定位位置信息。

javascript是一种直译式脚本语言,是一种动态类型、弱类型、基于原型的语言,内置支持类型。它的解释器被称为javascript引擎,为浏览器的一部分,广泛用于客户端的脚本语言,用来给html网页增加动态功能,能够检测浏览器。

所述修改文件光标定位信息包括光标停留处的段落号和光标在该段落中停留起始字符序号。

例如,用户在浏览器上修改的原始文件如下:

“……

为使本发明的目的、技术方案和优点更加清楚,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于说明书附图和以下实施例。

……”,

原始文件修改后的修改文件1为:

“……

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于说明书附图和以下实施例。

……”,

即,用户使用鼠标将光标移动到“清楚”之后,单击鼠标定位光标位置,在该字符序号位置上插入“明白”,则在修改文件中关于增加的字符“明白”的起始字符序号为“明白”中的字符“明”在段落22中的字符序号27。

或者,原始文件修改后的修改文件2为:

“……

为使本发明的目的、技术方案和优点更加清楚,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于说明书附图和以下实施例。

……”,

即,用户使用鼠标将光标移动到“不限于”之后或“附图和以下实施例”之前,单击鼠标定位光标位置,同delete键或backspace键删除“说明书”,则关于删除的“说明书”的起始字符序号为“附图”的字符“附”在段落22中的的起始字符序号75。

步骤2:客户端针对当前获取的修改文件的光标定位位置信息,从修改文件中提取相应的文件提取内容,判断修改文件的所述文件提取内容与原始文件的相关内容相比是否发生了变化。如果修改文件的所述文件提取内容与原始文件的段落中相关内容相比没有发生变化,则不生成记录;如果修改文件的所述文件提取内容与原始文件的段落中相关内容相比发生了变化,进入步骤3。

优选的,步骤2中,客户端在预定时间后才进行判断,并在下次光标定位事件发生时刻完成。在其原因在于,要保证在此光标定位位置处完成修改,而不受随后的修改影响。

具体判断方法优选的为:从修改文件中提取所获取的光标定位位置开始到所在段落结束的文件提取内容,判断修改文件的所述文件提取内容与原始文件的段落中相关内容相比是否发生了变化。

步骤3:如果修改文件的所述文件提取内容与原始文件的段落中相关内容相比发生了变化,客户端生成修改文件的每个所获取的光标定位位置的一条差异文件记录,存储到数组中。

差异文件记录包括修改文件光标定位位置信息、操作属性、起始字符序号移动数和修改文件的所述文件提取内容。其中,操作属性包括插入、删除和修改,表明用户对相关内容进行了何种操作,“插入”表示与原始文件相比增加了字符,“删除”表示与原始文件相比减少了字符,“修改”表示与原始文件相比字符数没有发生变化,但是文字内容发生了变化。

字符序号移动数表示在特定光标定位位置处修改文件相对于原始文件增加或删除的字符数量,例如,+3表示在修改文件的当前光标定位位置上增加或删除了3个字符,是增加还是删除由此条差异文件记录的操作属性确定。修改操作的字符序号移动数为零。

优选的,还将与修改文件的所述文件提取内容相对应的原始文件的相关段落内容存储在数组中。

具体的,如前所述,原始文件修改后的修改文件1为:

“……

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于说明书附图和以下实施例。

……”,

则生成的一条差异文件记录为:

其中,比较原始文件和修改文件各自在22段从起始字符序号27开始到段落结束的文字内容,确定增加了2个字符,所以操作属性为“+”,字符序号移动数为“2”。

再有,如前所述,原始文件修改后的修改文件2为:

“……

为使本发明的目的、技术方案和优点更加清楚,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。

……”,

则生成的一条差异文件记录为:

其中,比较原始文件和修改文件各自在22段从起始字符序号75开始到段落结束的文字内容,确定删除了3个字符,所以操作属性为“-”,字符序号移动数为“3”。

进一步,结合上述两个修改文件,当在修改文件的同一段落中出现多个光标定位位置信息时,以两个为例,说明生成差异文件记录的过程。

首先,在段落22的起始字符序号27处增加2个字符“明白”,则生成原始文件修改后的修改文件1为:

“……

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于说明书附图和以下实施例。

……”,

则存储在数组中的差异文件记录为:

此后,删除“说明书”,生成原始文件修改后的修改文件3为:

“……

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。

……”,

则存储在数组中的差异文件记录为:

其中,将修改文件在22段从起始字符序号77开始到段落结束的文字内容,与原始文件22段从起始字符序号75(修改文件的起始字符序号77减去前面修改时增加的两个字符数)开始到段落结束的文字内容,确定删除了3个字符,操作属性为“-”,字符序号移动数为“3”。

在另一个例子中,先删除“说明书”,在增加“明白”。删除“说明书”后,原始文件修改后的修改文件2为:

“……

为使本发明的目的、技术方案和优点更加清楚,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。

……”,

则存储在数组中的差异文件记录为:

此后,增加“明白”,生成原始文件修改后的修改文件3为:

“……

为使本发明的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本发明进一步详细说明。但本领域技术人员知晓,本发明并不局限于附图和以下实施例。

……”,

则存储在数组中的差异文件记录为:

其中,将修改文件在22段从起始字符序号27开始到段落结束的文字内容,与原始文件22段从起始字符序号27开始到段落结束的文字内容相比,少了1个字符,由于之前删除了3个字符,所以在修改文件在22段从起始字符序号27处增加了2个字符,操作属性为“+”,字符序号移动数为“2”。

由此,当同一段落中出现多个有效的修改文件光标定位位置信息时,与修改文件的光标定位位置在段落中的起始字符序号对应的原始文件在该段落中的起始字符序号如下确定:修改文件的起始字符序号减去该起始字符序号之前修改增加的字符序号移动数并加上该起始字符序号之前减少的字符序号移动数。修改文件的所述文件提取内容与原始文件的相关内容相比,变化的字符数(含正负号,正表示增加,负表示减少)减去修改文件的光标定位位置在段落中的起始字符序号之后增加的字符序号移动数并加上该起始字符序号之后减少的字符序号移动数,所得值的绝对值即为当前修改文件的光标定位位置处的字符序号移动数,所得值为正数表示操作属性增加,所得值为负数表示操作属性为删除。

此外,当用户再次对修改文件的同一光标定位位置进行修改时,在数组中保存该光标定位位置的后一次的差异文件记录,删除前一次的差异文件记录,避免对同一光标定位位置进行多次替换操作。

步骤4:客户端判断是否完成了原始文件的修改,如果没有完成原始文件的修改,则返回步骤1;如果完成了原始文件的修改,则进行步骤5。

客户端判断完成原始文件的修改可以是“修改完成”按钮被点击,或者检测到原始文件被关闭。

步骤5:原始文件完成修改后,客户端根据所述数组中存储的修改文件的每个所获取的光标定位位置处的差异文件记录生成差异文件。

步骤6:客户端传输生成的差异文件,可以与原始文件进行合并。

在本发明的又一实施例中,修改文件的光标定位信息存储光标停留处的段落号。将修改文件中该段的段落内容与原始文件的该段段落内容进行比较,生成差异文件进行传输。

如图2所示,本发明实施例的基于光标定位的修改文件的合并方法包括以下步骤:

步骤21:服务器端从客户端接收差异文件。

步骤22:服务器端将差异文件与原始文件进行合并。根据差异文件中每条差异文件记录,在原始文件中找到相应位置,利用差异文件记录中的修改文件的所述文件提取内容对原始文件中相应位置之后的段落内容进行替换。关于如何根据修改文件光标定位位置信息(段落号、起始字符序号)找到对应的原始文件的位置,已在前文中进行说明,此处不再赘述。

本发明实施例还提供一种基于光标定位的修改文件的传输系统,包括光标定位位置信息获取装置、文件提取内容判断处理装置、原始文件修改完成判断装置、差异文件生成装置和差异文件传输装置,其中:

光标定位位置信息获取装置用于实时获取修改文件的光标定位位置信息。

用户在浏览器上对原始文件进行修改时,会将光标移动到修改位置进行删除、添加、修改操作,浏览器的组件通过javascript获取用户在修改文件上的光标定位位置信息。

所述光标定位信息至少包括光标停留过的段落号,还可以包括光标在该段落中停留起始字符序号。

文件提取内容判断处理装置用于针对当前获取的修改文件的光标定位位置信息,从修改文件中提取相应的文件提取内容,判断修改文件的所述文件提取内容与原始文件的相关内容相比是否发生了变化。如果修改文件的所述文件提取内容与原始文件的段落中相关内容相比没有发生变化,则不生成记录;如果修改文件的所述文件提取内容与原始文件的段落中相关内容相比发生了变化,则将相关差异文件记录信息存储在数组中。

原始文件修改完成判断装置用于判断是否完成了原始文件的修改。

差异文件生成装置用于在原始文件完成修改后,根据所述数组中存储的修改文件的每个所获取的光标定位位置处的差异文件记录生成差异文件。

其中,操作属性包括插入、删除和修改,表明用户对相关内容进行了何种操作。

优选的,还将与修改文件的所述文件提取内容相对应的原始文件的相关段落内容存储在差异文件中。

差异文件传输装置用于传输生成的差异文件。

本发明实施例还提供一种基于光标定位的修改文件的合并系统,包括差异文件接收装置和差异文件合并装置。

差异文件接收装置用于从客户端接收差异文件。

差异文件合并装置用于将差异文件与原始文件进行合并。根据差异文件中每条差异文件记录,在原始文件中找到相应位置,利用差异文件记录中的修改文件的所述文件提取内容对原始文件中相应位置之后的段落内容进行替换。

以上,对本发明的实施方式进行了说明。但是,本发明不限定于上述实施方式。凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

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