1、界面概述
PNDiff界面如下图1所示主要分成Title, Menu, Button, Compare和status这几个区域。Title区域用来显示当前比较的文件全路径;Menu区域有File, Edit, View, Diff, Tool和Help菜单,File菜单用来打开/增加/减少用来比较的文件,Edit菜单可以对打开的文件做一些简单的编辑,View菜单用来设置文件的颜色/字体/参数/语法,Diff菜单用来设置/清除/比较/列表/跳转文本比对,Tool菜单用来打开查看系统信息(System Information)、文件加解密(Encrypt/Decrypt)、文件分解和合并(Split/Join)以及文件列表打印(Directory Print)这几个小工具,Help菜单用来打开用户手册、查看版本信息。Button区域有File, Edit, Search, Diff, Review, Tool和Help按钮,其功能和菜单栏中对应的类似。Compare区域显示diff比较的结果,这个结果是和文件中的内容对应的,分别找出行和列不一致的地方并用不同的颜色标识出来。Status区域主要显示当前比较的文件名以及比较的结果。
图1 PNDiff窗口各区域
2、多模式可配置的文本比对
PNDiff提供了多种可配置的文本比对模式,用户可以根据自己的需求做相应的配置进行比对,点击菜单栏或者按钮中的Diff Setting可以打开下图2设置界面,在这个设置界面中可以分别配置行模式,列模式和行范围,根据配置的值分别做相应的文本比对。
图2 Diff模式设置窗口
2.1、行模式配置
在行模式配置中有Auto,Precise和Customized这三个模式选择,如下图3所示。
图3 Diff行模式设置
Auto行模式,PNDiff在做文本行比对时会根据读入的文本行数自动生成一个行偏移值和一个块偏移值。这两个偏移值的作用是被用来在比对时做展开比较使用的,行偏移值表示文件在比较时将从当前行扩展偏移值个再做行内容的比较,块偏移值表示文件在比较时将从当前行扩展偏移值个再做块内容的比较。
图4 Diff行模式Auto示例
如上图4例子所示,在行的Auto模式下test_old_line和test_new_line这两个文件在比较时,根据自动设置的行/块偏移值在文件中找到一个符合行偏移之后相同的行,即test_old_line文件中的第4行和test_new_line文件中的第2行。找到该相同行之后将这两行再做对齐,即将test_old_line文件中的2-3行标识为多余行”Redu”,并将test_new_line文件中在第1行和第二行之间插入两个遗漏行”Miss”。
Precise行模式,PNDiff在做文本行比对时会将读入的文本进行逐行比较。
图5 Diff行模式Precise示例
如上图5例子所示,在行的Precise模式下test_old_line和test_new_line这两个文件在比较时,由于是逐行比较,取这两个文件中最少的行数16行,先将test_old_line文件中的第1-16行和test_new_line文件中的第1-16行逐行比较,没有一行能匹配上,两个文件的1-16行都表示为不同行”Diff”。再对这两个文件做行尾对齐,即将tes