一种超大文本文件比对方法与流程

文档序号:17721414发布日期:2019-05-22 02:11阅读:734来源:国知局
一种超大文本文件比对方法与流程

本发明属于文件比对技术领域,具体涉及一种超大文本文件比对方法。



背景技术:

目前,行业中比较常用的文本文件的工具软件有很多,比如记事本、notepad++、ultraedit、bes等软件工具。这些工具软件在处理超大文本文件,特别是gb级及以上大小的文件时,主要面临以下困难:

1.打开文件需要很大的内存开销,系统内存无法支持。

2.只能显示数据,但是不只是两个文件对比分析。

3.不具备误码率统计功能。

4.用户参数无法设置。

5.文件比对速度太慢。



技术实现要素:

本发明的发明目的是:为了解决现有技术中存在的以上问题,本发明提出了一种超大文本文件比对方法。

本发明的技术方案是:一种超大文本文件比对方法,包括以下步骤:

a、获取源文本文件,对源文本文件内容进行分析,提取源文本文件对比信息;

b、获取目标文本文件,对目标文本文件内容进行分析,提取目标文本文件对比信息;

c、设定文本对比参数,采用多线程同步比对方法计算比对结果;

d、采用内存缓冲机制将比对后的文件进行动态显示。

进一步地,所述步骤a中对源文本文件内容进行分析,提取源文本文件对比信息,具体为:

对源文本文件内容进行分析,采用分页管理机制,按照页大小参数将源文本文件分割成多个页文件数据,提取源文本文件的页信息,再对源文本文件的页信息进行分析,采用分行管理机制,将每个页文件数据分割成多个行数据,提取源文本文件的行信息。

进一步地,所述步骤b中对目标文本文件内容进行分析,提取目标文本文件对比信息,具体为:

对目标文本文件内容进行分析,采用分页管理机制,按照页大小参数将目标文本文件分割成多个页文件数据,提取目标文本文件的页信息,再对目标文本文件的页信息进行分析,采用分行管理机制,将每个页文件数据分割成多个行数据,提取目标文本文件的行信息。

进一步地,所述页信息包括文件名称、文件大小、文件分页大小、文件分页个数、文件页起始地址、文件页字节长度。

进一步地,所述行信息包括行号、起始地址、偏移地址、字节长度、帧序号。

进一步地,所述步骤c中采用多线程同步比对方法计算比对结果,具体为:

按照数据帧格式解析行数据,然后比对源文本文件的行信息与目标文本文件的行信息差异,记录差异地址和长度大小,以及差异类型。

进一步地,所述步骤d采用内存缓冲机制将比对后的文件进行动态显示,具体为:

采用内存缓冲机制显示设定的文件起始行数据,并采用滑动方式动态加载行数据,查看其它比对数据。

进一步地,所述采用滑动方式动态加载行数据中当用户拖动滚动条往行编号数值增大方向拖动时,具体包括以下分步骤:

s11、显示对比数据起始n行数据内容,设置当前可显示起始行号为1和可显示截止行号为n;

s12、当用户拖动滚动条进入第一缓冲标志位置后,行显示管理器从文件中再加载后n行数据进入行显示管理器的内存中,更新当前可显示起始行号为1和可显示截止行号为2n;

s13、当用户再次拖动滚动条进入第二缓冲标志位置后,行显示管理器从文件中再加载后n行数据进入行显示管理器的内存中,同时删除行显示管理器中最前面n行数据,更新当前可显示起始行号为n和可显示截止行号为3n;

s14、当用户再次拖动滚动条进入第三缓冲标志位置或更后面的标志位置时,将按照步骤s13中所述的方法显示行数据;

s15、当用户拖动滚动条到达最后一个缓冲标志位置时,行显示管理器从文件中加载剩余的所有行数据进入行显示管理器的内存中,再删除行显示管理器中前n行数据,同时更新当前可显示起始行号和可显示截止行号的数值。

进一步地,所述采用滑动方式动态加载行数据中当用户拖动滚动条往行编号数值减小方向拖动时,具体包括以下分步骤:

s11、当用户拖动滚动条进入第四缓冲标志位置后,行显示管理器从文件中加载前n行数据插入到行显示管理器内存的最小行号前面,同时需要删除行显示管理器中最后面的k行数据,同时更新当前可显示起始行号和可显示截止行号的数值;

s12、当用户拖动滚动条进入第五缓冲标志位置后,行显示管理器从文件中再加载前n行数据插入到行显示管理器内存的最小行号前面,同时需要删除行显示管理器中最后面的n行数据,同时更新当前可显示起始行号和可显示截止行号的数值;

s13、当用户拖动滚动条进入第六缓冲标志位置或更前面的缓冲标志位置时,将按照步骤s12中所述的方法显示行数据;

s14、当用户拖动滚动条到达第一缓冲标志位置时,行显示管理器从文件中加载剩余的所有行数据进入行显示管理器的内存中,再删除行显示管理器中最后面的k行数据,保证当前最大显示行个数为2n行,可显示起始行号为1,可显示截止行号为2n。

本发明的有益效果是:本发明首先在超大文本文件分析上采用文本地址、文本大小管理机制,避免大容量数据加载,从而保证内存资源占有小,有效解决超大文本处理过程内存不足的问题;其次采用分页和分行管理机制与多线程处理相结合,大大提高超大文本文件比对速度;最后文本显示采用行管理和缓冲区相结合的方式,根据用户需要动态加载文本内容,从而保证内容加载的实时性和连续性,文本内容显示流畅,大大提高用户体验感觉。

附图说明

图1为本发明的超大文本文件比对方法流程示意图;

图2为本发明的超大文本文件比对方法中文本对比流程示意图;

图3为本发明的超大文本文件比对方法中文件显示处理示意图。

具体实施方式

为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。

如图1所示,为本发明的超大文本文件比对方法流程示意图。一种超大文本文件比对方法,包括以下步骤:

a、获取源文本文件,对源文本文件内容进行分析,提取源文本文件对比信息;

b、获取目标文本文件,对目标文本文件内容进行分析,提取目标文本文件对比信息;

c、设定文本对比参数,采用多线程同步比对方法计算比对结果;

d、采用内存缓冲机制将比对后的文件进行动态显示。

在步骤a中,本发明首先获取源文本文件,再对获取的源文本文件内容进行分析,提取源文本文件的页信息和行信息,具体为:

创建一个文件分析线程,对源文本文件内容进行分析,采用分页管理机制,按照页大小参数将源文本文件分割成多个页文件数据,提取源文本文件的页信息,再对源文本文件的页信息进行分析,采用分行管理机制,将每个页文件数据分割成多个行数据,提取源文本文件的行信息。

上述源文本文件的页信息具体包括文件名称、文件大小、文件分页大小、文件分页个数、文件页起始地址、文件页字节长度。

上述源文本文件的行信息具体包括行号、起始地址、偏移地址、字节长度、帧序号。

在步骤b中,本发明首先获取目标文本文件,再对获取的目标文本文件内容进行分析,提取目标文本文件的页信息和行信息,具体为:

创建一个文件分析线程,对目标文本文件内容进行分析,采用分页管理机制,按照页大小参数将目标文本文件分割成多个页文件数据,提取目标文本文件的页信息,再对目标文本文件的页信息进行分析,采用分行管理机制,将每个页文件数据分割成多个行数据,提取目标文本文件的行信息。

上述目标文本文件的页信息具体包括文件名称、文件大小、文件分页大小、文件分页个数、文件页起始地址、文件页字节长度。

上述目标文本文件的行信息具体包括行号、起始地址、偏移地址、字节长度、帧序号。

在步骤c中,如图2所示,为本发明的超大文本文件比对方法中文本对比流程示意图。本发明首先选择数据帧格式解析文件,判断文件是否存在;若文件存在,则配置比对参数,若文件不存在则重新选择数据帧格式解析文件;再判断是否达到最大线程,若是,则等待线程完成,若否,则创建页数据解析比对线程,等待所有线程完成后,采用多线程同步比对方法计算比对结果,具体为:

按照数据帧格式解析行数据,然后比对源文本文件的行信息与目标文本文件的行信息差异,记录差异地址和长度大小,以及差异类型。这里的差异类型为丢帧、误码、正常等。

在步骤d中,如图3所示,为本发明的超大文本文件比对方法中文件显示处理示意图。本发明采用内存缓冲机制将比对后的文件进行动态显示,具体为:

采用内存缓冲机制显示设定的文件起始行数据,并采用滑动方式动态加载行数据,查看其它比对数据。

上述采用滑动方式动态加载行数据中当用户拖动滚动条往行编号数值增大方向拖动时,具体包括以下分步骤:

s11、显示对比数据起始n行数据内容,设置当前可显示起始行号为1和可显示截止行号为n;优选地,本发明设定n为100,即显示对比数据起始100行数据内容。

s12、当用户拖动滚动条进入第一缓冲标志位置①后,行显示管理器从文件中再加载后n行数据进入行显示管理器的内存中,更新当前可显示起始行号为1和可显示截止行号为2n;

s13、当用户再次拖动滚动条进入第二缓冲标志位置②后,行显示管理器从文件中再加载后n行数据进入行显示管理器的内存中,同时删除行显示管理器中最前面n行数据,更新当前可显示起始行号为n和可显示截止行号为3n;

s14、当用户再次拖动滚动条进入第三缓冲标志位置③或更后面的标志位置(除最后一个缓冲标志位置)时,将按照步骤s13中所述的方法显示行数据;

s15、当用户拖动滚动条到达最后一个缓冲标志位置时,行显示管理器从文件中加载剩余的所有行数据(行个数小于等于100)进入行显示管理器的内存中,再删除行显示管理器中前n行数据,同时更新当前可显示起始行号和可显示截止行号的数值。

上述采用滑动方式动态加载行数据中当用户拖动滚动条往行编号数值减小方向拖动时,处理方式与滚动条往数值增大方向相反,假设滚动条前位置在结束行位置,具体包括以下分步骤:

s11、当用户拖动滚动条进入第四缓冲标志位置④后,行显示管理器从文件中加载前n行数据插入到行显示管理器内存的最小行号前面,同时需要删除行显示管理器中最后面的k行数据,同时更新当前可显示起始行号和可显示截止行号的数值;优选地,本发明设定k=行显示管理器总行数–200。

s12、当用户拖动滚动条进入第五缓冲标志位置⑤后,行显示管理器从文件中再加载前n行数据插入到行显示管理器内存的最小行号前面,同时需要删除行显示管理器中最后面的n行数据,同时更新当前可显示起始行号和可显示截止行号的数值;

s13、当用户拖动滚动条进入第六缓冲标志位置或更前面的缓冲标志位置(除第一个缓冲标志位置)时,将按照步骤s12中所述的方法显示行数据;

s14、当用户拖动滚动条到达第一缓冲标志位置时,行显示管理器从文件中加载剩余的所有行数据进入行显示管理器的内存中,再删除行显示管理器中最后面的k行数据,保证当前最大显示行个数为2n行,可显示起始行号为1,可显示截止行号为2n。

本领域的普通技术人员将会意识到,这里所述的实施例是为了帮助读者理解本发明的原理,应被理解为本发明的保护范围并不局限于这样的特别陈述和实施例。本领域的普通技术人员可以根据本发明公开的这些技术启示做出各种不脱离本发明实质的其它各种具体变形和组合,这些变形和组合仍然在本发明的保护范围内。

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