回复 楼主 yz1025---对 “UltraCompare 结果.txt” 的解读和自编程序的“导出结果”形式的设想
											UltraCompare的“结果.txt”比较好的表示出了“比较”的结果,同时,它把左右2个文本的全部内容都记录下来了。
(下面的叙述用“左文本”表示“左面的修改前的文本”;用“右文本”表示“右面的修改后的文本”)
左文本通过一系列的编辑操作,成了右文本。编辑的类型一般是3种:删除、插入和修改。其实“修改”是由“删除”跟“插入”组成的。
在“结果.txt”中,左文本的行,有3种表示形式:(行首都有“行号”)
1.行号右面有“*”,表示编辑后会被替换。
2.行号右面有“<!”,表示编辑后会被删除。
3.行号右面没有“符号”,表示编辑后会保留不动。其实就是2个文本的“公共子序列”。
在“结果.txt”中,来自右文本的行,有2种表示形式:(行首都没有“行号”)
1.左面有“*”,表示编辑后会替换左面的行。
2.左面有“!>”,表示它是编辑后被插入进来的。至于它的“来源”,“结果.txt”没有表示出“来自右文本的哪一行”。
综上所述,在“结果.txt”中,共有 5 种 形式。
结果.txt
----------------------------------------------------------
316
              RT1.Locked = True
  表示编辑后会保留不动,也是“2个文本的[公共子序列]”。
324
    *
         'ReDim P
           表示编辑后会被替换
314
    <!
        Label13.Cap
        表示编辑后会被删除
       *
         Label13.Caption =
         表示编辑后会从右文本来替换左面的行
       !>
          ReDim Preserve QS(1
       表示它是编辑后被从右文本插入进来的
  
========================================================
 
鉴于 “修改”是由“删除”跟“插入”组成的,也为使算法简单一些。我设计的结果文本,用 3 种形式来表示各类的行:
行首带有行号的都是左文本的行,其中:
1.行号的右面带“<!*” 表示编辑后将会被删除或被替换。
2.行号的右面不带符号,是保留的行,也是“2个文本的[公共子序列]”。(跟“结果.txt”的表示一样)
3.来自右文本的行,“行首不带行号”且带“!>*” 。表示是从右边文本插进来的或替换后的行。
自编的程序,在调试中,完成后会上传。
对我的想法,欢迎提出意见。
JieGuo.txt
---------------------------------------------------------------------
324
    <!*
        'ReDim Preserve
    编辑后将会被删除或被替换。
325
               ZT = ""
            是保留的行,也是“2个文本的[公共子序列]”,与 “结果.txt”一样。
       !>*
        Tot = Tot + TTot
   编辑后从右边文本插进来的或替换后的行
--------------------------------------------------------------------------------------
   
	
		
			
        
				
				
					
						图片附件: 游客没有浏览图片的权限,请 
登录 或 
注册 
		
	
[此贴子已经被作者于2024-5-16 14:58编辑过]