日常小工具-文本比对程序

1,213 阅读3分钟

前言

  • 需求: 比对两个文本之间的差异点,以我自身的工作使用场景来说多用于
    • 1.客户更新程序,新老版本的配置文件需要进行比对 来判断新配置文件中客户原先的配置是否配置正确,以免造成运行错误
    • 2.新老系统切换,由于系统涉及到生成文件。所以需要用到比对工具来进行判断新老系统所生成的文件是否一致
  • 问题:
    • 对于文件内容的比对有一个比较偷懒且快速的方式有可以将文件内容进行MD5之后进行比较,但是由于我的场景中两个文件内容可能会由于空行或者排序的问题导致这个方式不可行。
    • 虽然存在一些现有的文本比对工具比如:【Beyond Compare等】,但是由于当文件的行特别长的情况下,无法快速的跳转至对应的差异点的位置,而且当内容过多时总感觉不能一目了然。(tip:不过还是要承认他们做的确实很不错,还有一个特别重要的原因应该就是它们是收费软件,而公司也没有为此而专门付费,为响应尊重知识者的劳动成果,不白嫖 从自身做起哈哈哈哈哈)
  • 需要解决:
    • 可以自动识别两个文本的删除行、新增行、修改行以及一致行
    • 具体显示差异行的差异点,使用亮色来进行凸显
    • 可以快速跳转至上一个或者下一个的差异点并进行解决

代码实现

具体的代码这边就放一个github地址,同学们自己可以去拉https://github.com/Layofhan/Compare.git
代码路径下的/Compare/CompareFile/bin/Debug/CompareFile.exe 打开可以直接进行运行程序 源码同学们可以拿去用,也可以修改 但是希望不要说是你自己的 哈哈哈哈 支持开源 尊重开源

显示效果

放两组效果 第一组是文本普通文本内容,第二组是xml格式内容
tip:强匹配模式说明:是则代表比对时自动识别码行问题,否则按原文本进行每行比对 码行的可能是否一行被删除,新增行等导致
普通文本效果:

XML格式效果:

结语

因为是第一版,代码整体上有很大的优化空间,也希望读者可以提出优化的思路和想法共同学习。
写道这里突然有一些感想:我在写完工具后发现 他好像和已经存在的一些工具有很大程度的相似性更且还不如已经存在的。但是我任然认为这是一个有意义的举动,我会为此去网上搜索和学习一些文本比对的算法和思路,同时也对基本的语言数据结构有了一些更深的认识。还年轻不多动手造轮子,老了拿什么和别人吹 哈哈哈哈哈哈
文章主要是用于个人的记录 对他人有用就更好了

转载请备明出处,LOVE & PEACE ! --- By HAN