如何用c#实现比较两个文件的内容,并得出比较结果

啊飞凤飞飞 2016-06-15 05:43:32
因为两个文件顺序不是完全相同的,如果错开一行 可能导致结果相差很多。
我的想法是首先需要找到最大匹配度的再去进行比较,好像很困难。
不知道uedit 是如何实现的。
或者可以通过命令行调用的软件且能导出结果的 帮忙推荐个也行。
...全文
1367 6 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Master_Chen2016 2017-01-19
  • 打赏
  • 举报
回复
版主解决了吗?
xuzuning 2016-06-16
  • 打赏
  • 举报
回复
比较两个文件的差异: windows 有 fc 命令 linux 有 diff 命令 如果不是为了学术探讨,完全可以直接调用系统命令去进行 虽然不知道那些命令内部是如何实现的 但个人倾向于基于 编辑距离算法 来解决
xw52856132 2016-06-16
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
你想多了,想复杂了。这种比较不需要什么“最大匹配度”概念。

例如:
1、2、3、4、5、6

1、2、a、b、4、5、6

你可以说是前边“插入”了两行,也可以说是后边“缺少”了两行,同样一个话可以正反面都是同一个意思,只不过给人的印象则完全颠倒。

所谓“最大匹配度”概念,是说要在许多中可能的操作步骤(例如几十种)中选择一种作为结论。然而你这个东西完全只需要考虑上述2种说法,而且在文件对比的 UI 设计上也根本不明确区分(而是模糊显示)“插入还是缺少”。所以这种问题根本就不要去纠结什么“最大匹配”概念。


我想LZ的意思是想要SVN那种比较不同版本之间修改的那种样子吧。就像下面图里面这张



我也很好奇这种比较的大致思路是什么,特别是那种大文本文件的比较,几M甚至几十M的时候感觉会很麻烦,效率低,请版主大大解惑啊。
xw52856132 2016-06-16
  • 打赏
  • 举报
回复
引用 1 楼 sp1234 的回复:
你想多了,想复杂了。这种比较不需要什么“最大匹配度”概念。

例如:
1、2、3、4、5、6

1、2、a、b、4、5、6

你可以说是前边“插入”了两行,也可以说是后边“缺少”了两行,同样一个话可以正反面都是同一个意思,只不过给人的印象则完全颠倒。

所谓“最大匹配度”概念,是说要在许多中可能的操作步骤(例如几十种)中选择一种作为结论。然而你这个东西完全只需要考虑上述2种说法,而且在文件对比的 UI 设计上也根本不明确区分(而是模糊显示)“插入还是缺少”。所以这种问题根本就不要去纠结什么“最大匹配”概念。


我想LZ的意思是想要SVN那种比较不同版本之间修改的那种样子吧。就像下面图里面这张



我也很好奇这种比较的大致思路是什么,特别是那种大文本文件的比较,几M甚至几十M的时候感觉会很麻烦,效率低,请版主大大解惑啊。
  • 打赏
  • 举报
回复
所谓“最大匹配度”概念,考虑了某些字眼前后颠倒、排版错位、同音字、错别字、同义词转换、章节段落的不同出场次序.......许多种可能性,这时候才叫做“匹配度”。 可以说,那些没有技术含量的“匹配度”,或者是不懂匹配度的人所说的“匹配度”概念,都不可信。
  • 打赏
  • 举报
回复
你想多了,想复杂了。这种比较不需要什么“最大匹配度”概念。 例如: 1、2、3、4、5、6 与 1、2、a、b、4、5、6 你可以说是前边“插入”了两行,也可以说是后边“缺少”了两行,同样一个话可以正反面都是同一个意思,只不过给人的印象则完全颠倒。 所谓“最大匹配度”概念,是说要在许多中可能的操作步骤(例如几十种)中选择一种作为结论。然而你这个东西完全只需要考虑上述2种说法,而且在文件对比的 UI 设计上也根本不明确区分(而是模糊显示)“插入还是缺少”。所以这种问题根本就不要去纠结什么“最大匹配”概念。

111,093

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • AIGC Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧