diff winmerge 文件对比算法实践

参考文章:

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)
{
}


}

如果是用代码整形的话,比如astyle这样的工具的话,参见:http://download.csdn.net/source/541885

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值