相关疑难解决方法(0)

如何版本控制数据库中的记录

假设我在数据库中有一条记录,管理员和普通用户都可以进行更新.

任何人都可以建议一个好的方法/架构如何版本控制此表中的每个更改,以便可以将记录回滚到以前的版本.

architecture database-design

158
推荐指数
8
解决办法
6万
查看次数

WinForms或WPF的文本差异可视化控件

继续我之前的问题,文本差异可视化的任何良好控制是什么?

像StackOverflow的修订差异查看器,但对于WinForms或WPF

要求:

  • 免费的,最好是开源的
  • 基于WPF或WinForms

没有应用程序,只有组件.

我对OSS差异工具不感兴趣

.net diff custom-controls

20
推荐指数
4
解决办法
7416
查看次数

如何在Excel宏中使用JavaScript?

这里有一个由Google托管的非常酷的差异类:

http://code.google.com/p/google-diff-match-patch/

我之前在一些网站上使用过它,但现在我需要 Excel宏中使用它来比较两个单元格之间的文本.

但是,它仅适用于JavaScript,Python,Java和C++,而不适用于VBA.

我的用户仅限于Excel 2003,因此纯.NET解决方案无效.手动将代码翻译为VBA将花费太多时间并且难以升级.

我考虑的一个选项是使用.NET编译器(JScript.NET或J#)编译JavaScript或Java源代码,使用Reflector输出为VB.NET,然后最终手动将VB.NET代码降级为VBA,给我一个纯粹的VBA解决方案.在使用任何.NET编译器进行编译时遇到问题之后,我放弃了这条路径.

假设我可以使用一个可用的.NET库,我本可以使用ExcelDna(http://www.codeplex.com/exceldna)这个开源Excel插件来简化.NET代码集成.

我的最后一个想法是托管一个Internet Explorer对象,向它发送JavaScript源代码并调用它.即使我让它工作,我的猜测是它会变得很脏而且很混乱.

更新:找到解决方案!

我通过接受的答案使用了下面描述的WSC方法.我不得不稍微更改WSC代码以清理差异并返回一个VBA兼容的数组数组:

function DiffFast(text1, text2)
{
    var d = dmp.diff_main(text1, text2, true);
    dmp.diff_cleanupSemantic(d);
    var dictionary = new ActiveXObject("Scripting.Dictionary"); // VBA-compatible array
    for ( var i = 0; i < d.length; i++ ) {
    dictionary.add(i, JS2VBArray(d[i]));
    }
    return dictionary.Items();
}

function JS2VBArray(objJSArray)
{
    var dictionary = new ActiveXObject("Scripting.Dictionary");
    for (var i = 0; i < objJSArray.length; i++) {
        dictionary.add( i, objJSArray[ i ] );
        }
    return dictionary.Items(); …
Run Code Online (Sandbox Code Playgroud)

.net javascript j# excel vba

19
推荐指数
1
解决办法
4万
查看次数

比较文本并获得差异

好吧,我想比较2个字符串(版本1和版本2)并获得我可以自己转换为html的格式的差异,就像你可以查看如何在堆栈溢出时编辑帖子或像svn跟踪之间的差异修订....

它必须是完整的托管代码库.

这个 JavaScript,但我需要在服务器端做它..

.net vb.net asp.net text-comparison

7
推荐指数
2
解决办法
4850
查看次数

以编程方式比较word文档

我需要比较两个office文档,在这种情况下是两个word文档并提供差异,这有点类似于SVN中显示的内容.不是那么大,但至少能够突出差异.

我尝试使用办公室COM DLL,并得到了这个...

object fileToOpen = (object)@"D:\doc1.docx";
string fileToCompare = @"D:\doc2.docx";

WRD.Application WA = new WRD.Application();

Document wordDoc = null;

wordDoc = WA.Documents.Open(ref fileToOpen, Type.Missing, Type.Missing, Type.Missing, Type.Missing,      Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
wordDoc.Compare(fileToCompare, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing, Type.Missing);
Run Code Online (Sandbox Code Playgroud)

有关如何进一步处理的任何提示?这将是一个具有大量点击的Web应用程序.使用office com对象是正确的方法,还是有其他我可以看的东西?

.net c# ms-office

6
推荐指数
1
解决办法
9602
查看次数