diff winmerge 文件对比算法实践

//todo: 以备以后有空慢慢看,需要弄个Excel的Diff工具

 diff winmerge 文件对比算法实践  转自:http://blog.csdn.net/weixu_2008/article/details/2672004

参考文章:

http://www.2maomao.com/blog/how-windiff-works-continued-1/

http://www.computerhope.com/fchlp.htm

http://www.ascotti.org/programming/lcs/lcs.htm

http://ftp.gnu.org/pub/gnu/diffutils/

http://svn.collab.net/repos/svn/trunk/subversion/libsvn_diff/lcs.c

http://webtools.live2support.com/windows/fc.php

http://c2.com/cgi/wiki?DiffAlgorithm

http://en.wikipedia.org/wiki/Diff#See_also

http://www.codeproject.com/KB/recipes/vdiff.aspx

http://www.codeproject.com/KB/recipes/diffengine.aspx

http://code.google.com/p/google-diff-match-patch/wiki/API

http://www.angusj.com/delphi/

http://www.mathertel.de/Diff/ViewSrc.aspx

其中字体为绿色的效率比较高。

下面是自己写的bcb代码。

根据http://www.codeproject.com/KB/recipes/vdiff.aspx写的:

http://download.csdn.net/source/541639

根据http://www.mathertel.de/Diff/ViewSrc.aspx写的:

http://download.csdn.net/source/541646

但是以上两种算法在测试10万行代码比较的时候,需要10分钟左右的时间才行,和windows自带的fc命令,winmerge相比,效率太低。

下面介绍一下fc得用法:

time

fc /L   /T /N /A 11111.txt 22222.txt > newresult.txt
time

pause

具体可以参见:http://webtools.live2support.com/windows/fc.php或者微软的帮助,

但是这个命令也有问题,比如对比以下两个文件的时候,就有误差。

file1.txt
─────────────────────
void func(){

if(1){
}
if(1){
}


}

void func2(){

if(1){
}
if(1){
}


}


file2.txt
─────────────────────
void func()
{

if(1)
{
}
if(1)
{
}


}

void func2()
{

if(1)
{
}
if(1)
{
}


}

 

你可能感兴趣的:(算法,windows,测试,File,Excel,工具)