【发布时间】:2019-06-12 06:03:31
【问题描述】:
我想用 Beyond Compare 比较 c 和 XML 文件。但是我想检测一个块内是否存在与另一个文件对应的差异,如果一个块有差异,我不希望超越比较显示块中的差异,而是像这个块不在一样处理它另一个文件。我需要这个,因为在我的文件中有某些代码块几乎相同,但其中有不同的信号名。
例如,我得到了一个看起来像这样的 c 文件:
//1
functioncall(
Singalname1,
Singalname2,
Singalname3,
Singalname4,
Singalname5,
Singalname6);
//2
functioncall(
Singalname31,
Singalname32,
Singalname33,
Singalname34,
Singalname53,
Singalname36);
还有一个看起来像这样的文件:
//1
functioncall(
Singalname1,
Singalname2,
Singalname3,
Singalname4,
Singalname5,
Singalname6);
//2
functioncall(
Singalname371,
Singalname372,
Singalname373,
Singalname374,
Singalname573,
Singalname376);
如果我将这两个文件与 BeyondCompare 进行比较,它会确定第二个函数调用中的差异,因为信号名都包含 7。但我希望 Beondcompare 比较整个函数调用,如果 functionCall 中存在差异,则在空旁边显示函数调用空间,所以我可以将其添加到第二个文件中。 所以不是这样: 我想要这样:
我尝试添加一些带有开始注释和带有递增数字的结束注释的 cmets,如下所示:
//begin1
functioncall(
Singalname1,
Singalname2,
Singalname3,
Singalname4,
Singalname5,
Singalname6);
//end1
然后在无法比较中添加特定规则。不幸的是,我没有设法将此规则添加到无法比较的范围内。 此外,我认为代码中包含此 cmets 并不好。
【问题讨论】:
-
您想要一种在 GUI 中或以编程方式最有效地执行此操作的方法吗?如果以编程方式,请通过minimal reproducible example 显示最接近的内容(但仍然不是您想要的),以显示您走了多远。
-
顺便说一句,我认为这个问题很切题,因为对我来说,这种使用比较工具与编程密切相关——即使问题是关于使用 GUI。
-
您似乎有一个经常重复的错字“Singal/Signal”。你注意到了吗?然而,它并没有打破这个问题。
-
您好,感谢您的评论。我想在代码中使用最少的版本来做到这一点。我尝试添加“orientation cmets”,但效率低下,代码变得混乱。
-
@Yunnosch 哦,是的,谢谢你没有注意到这一点。但实际代码看起来更复杂并不重要,这只是一个显示问题的简单示例。
标签: c xml compare beyondcompare