Tag: diff

获取2个DataSet的差异c#

我正在编写一个简短的算法,它必须比较两个DataSet,以便可以进一步处理两者之间的差异。 我尝试通过合并这两个DataSet来完成这个目标,并将结果更改到新的DataSet中。 我的方法如下所示: private DataSet ComputateDiff(DataSet newVersion, DataSet oldVersion) { DataSet diff = null; oldVersion.Merge(newVersion); bool foundChanges = oldVersion.HasChanges(); if (foundChanges) { diff = oldVersion.GetChanges(); } return diff; } foundChanges的结果始终为false,即使两个DataSet中的值不同。 两个DataSet都具有相同的结构。 它们由三个DataTable组成,这三个DataTable是数据库中三个查询的结果。 合并工作没有问题。 我的问题是:有没有合理的解释为什么foundChanges变量总是假的,如果不是,Linq会为这个问题提供一个合适的解决方案,或者我必须通过迭代DataSet来确定更改 以下是一些进一步的信息:编程语言是C#我正在使用.Net framework 4.0我在Windows 8机器上开发所提到的数据来自数据库(MSSQL Server 2012 express)我的DataSet或DataTables没有任何PK的我所知道的。 提前致谢

XMLDiff无法正确识别差异?

我在这里想念的是什么? XMLDiff是否应关注元素名称并寻求最佳匹配以正确识别以下更改? 一个Helper类,用于在两个XML文件之间进行比较: public class XMLDiffer { public XDocument Diff(string originalXML, string changedXML) { //http://msdn2.microsoft.com/en-us/library/aa302294.aspx XmlDiff xmlDiff = new XmlDiff(XmlDiffOptions.IgnoreChildOrder | XmlDiffOptions.IgnoreComments | XmlDiffOptions.IgnoreWhitespace); xmlDiff.Algorithm = XmlDiffAlgorithm.Precise; StringBuilder diffgramStringBuilder = new StringBuilder(); bool xmlComparisonResult = false; using (StringReader legacySr = new StringReader(originalXML), nextgenSr = new StringReader(changedXML)) { using (XmlReader legacyReader = XmlReader.Create(legacySr), nextgenReader = XmlReader.Create(nextgenSr)) […]

免费的C#XML Diff库或类

我正在寻找XML Diff类或库。 有我的要求: – 开源:) – 输出的对象模型(*) – 相当快(对于4mb XML) 我正在尝试使用MS XML Diff和Patch Tools,但我想获得一个具有2个XML文件差异的对象列表(而不是HTML标记)。 UPD:感谢您的所有回复。 我实施了自己的解决方案; 对Linq2Xml来说并不太难:) UPD2:对不起伙计们,但我现在不能在这里发布我的解决方案(我实际上还没有得到它,因为我最近改变了我的工作)。 我的解决方案也有一些特定的部分,所以它不能适合任何方式的常见问题。 主要建议是使用Linq2Xml,实现你的逻辑,玩得开心:)

行号的方法名称

给定特定类源代码(Java / C#)的行号 – 是否有一种简单的方法来获取它所属的方法的名称? (如果它在一个内)(推测使用抽象语法树) (这对于将checkstyle的输出限制为仅触及的方法非常有用)。 我假设您必须使用抽象语法树来执行Line# – > MethodName。

可以集成到C#应用程序中的差异工具

我有一个小型的C#应用​​程序,我想提供预览差异和接受更改的function。 我的输入只是文本文件。 我遇到了一些像kdiff3和winmerge这样的工具,我想知道是否有人将它们集成到C#应用程序中,如果是,它是如何完成的? 我还从早期的stackoverflow问题中看到了一些关于CodeProject的好项目,但由于这些项目是在2004年编写的,我想知道你是否对我可以集成的开源差异和合并工具有任何建议? 谢谢!

如何使用Team Foundation的库来计算统一差异?

我想计算比较两个文档的统一差异 。 (差异是用电子邮件发送的,维基百科说统一差异是最好的纯文本差异格式。) Team Foundation有一个命令行界面 > tf diff /format:unified alice.txt bob.txt – Alice started to her feet, + Bob started to her feet, ( https://gist.github.com/hickford/5656513上的示例文件) 很棒,但出于通常的原因,我宁愿使用库而不是启动外部进程。 搜索MSDN,我发现Team Foundation有一个.NET库Microsoft.TeamFoundation.VersionControl 。 但是,文档没有给出任何计算差异的例子。 如何使用Team Foundation库计算统一差异? 编辑:我尝试了方法Difference.DiffItems但它没有工作 – 文件diff.txt被留空。 var before = @”c:\alice.txt”; var after = @”c:\bob.txt”; var path = @”c:\diff.txt”; using (var w = new StreamWriter(path)) { var […]

找出两个json对象之间的差异

.Net中是否有任何库可帮助比较和查找两个json对象之间的差异? 我找到了一些适用于JavaScript的解决方案,但对于C#没什么有趣的。 我的问题的关键是根据比较创建带有以某种方式标记的更改的json。 这样用户就可以看到更改的位置。

C#中的编程XML差异/合并

此时,我正在管理一个包含多个XML配置文件的软件。 当发布新版本的软件时,有时基本配置文件会发生变化,我们目前在启动时会调用KDiff软件。 如果检测到更改,则会提示用户选择更改。 这种方法的问题是KDiff是一个比较程序的行,而不是知道XML的方式(如节点等) 理想情况下,我希望以编程方式使用C#中的库(因为我们是一个MS商店),它可以扩展两个XML文件:源XML和当前工作XML。 然后使用一些简单的规则将两者合并在一起: 如果当前工作XML具有源XML不具有的节点,请将其删除。 如果源XML具有当前工作XML不具有的节点,请添加它。 如果两者具有相同的节点且值不同,则支持Source XML的值,除非Source XML的值设置为“UseExistingValue”。 例如,这是“源”XML: 这是“当前工作”XML: 合并后的版本看起来像: 我查看了MS XML Diff和Patch Tool ,它肯定将文件合并在一起,但不允许我想要定义的编程规则。 XMLUnit for Java开发人员看起来很有希望,但它的.NET版本似乎不发达,这是不幸的。 任何人对可编写脚本的XML Diff / Merge工具和/或.NET库(付费或免费)有任何建议吗? 谢谢。

在C#中创建大型二进制文件的Delta Diff补丁

我正在寻找一种方法来创建大型二进制文件的Delta Diff补丁(VMWare虚拟磁盘文件)。 是否有C#中的实现或.NET Framework中的任何有用方法。 任何帮助表示赞赏。 谢谢。 rAyt

关于如何构建HTML Diff工具的建议?

在这篇文章中,我询问是否有任何工具可以比较2个HTML页面的结构(而不​​是实际内容)。 我问,因为我从设计师那里收到了HTML模板,并经常错过我的实现中的次要格式更改。 然后我浪费了几个小时的设计师时间筛选我的页面来发现我的错误。 该主题提供了一些很好的建议,但没有任何东西适合该法案。 “好吧,然后”,我想,“我只是自己动摇一下。我是一个不太合适的开发者,对吗?” 好吧,一旦我开始思考它,我就无法弄清楚如何去做。 我可以轻松地创建一个数据驱动的网站,或者进行CMS实施,或者整天将文档放入和放出BizTalk。 无法开始弄清楚如何比较HTML文档。 嗯,当然,我必须阅读DOM,并遍历节点。 我必须将结构映射到一些数据结构(如何??),然后比较它们(如何??)。 这是一项我从未尝试过的开发任务。 所以,既然我已经发现了自己的知识上的弱点,那我就更难以解决这个问题。 有关如何入门的任何建议? 澄清:实际内容不是我想要比较的 – 创意人用lorem ipsum填充他们的页面,我使用真实的内容。 相反,我想比较结构: lorem ipsum 与众不同 lorem ipsum