Как действительно пишут differencing работу приложений?

Что вы можете сделать, это создать новый класс, подобный примеру @ Gregoire, однако вы захотите переопределить метод ToString(), чтобы он правильно отображался в поле со списком, например

public class Language
{
    private string _name;
    private string _code;

    public Language(string name, string code)
    {
        _name = name;
        _code = code;
    }

    public string Name { get { return _name; }  }
    public string Code { get { return _code; } }
    public override void ToString()
    {
        return _name;
    }
}
7
задан Nosredna 29 May 2009 в 17:11
поделиться

4 ответа

Вот документ , который послужил основой для инструмента командной строки UNIX diff .

5
ответ дан 6 December 2019 в 11:52
поделиться

Есть библиотеки. Вот один: http://code.google.com/p/google-diff-match-patch/

StackOverflow использует Beyond Compare для сравнения. Я считаю, что он работает, вызывая Beyond Compare из командной строки.

4
ответ дан 6 December 2019 в 11:52
поделиться

На самом деле это довольно просто; Программы DIFF - в большинстве случаев - основаны на Самой длинной общей последовательности , которая может быть решена с использованием алгоритма графа.

На этой веб-странице приведены примеры реализации на C #.

4
ответ дан 6 December 2019 в 11:52
поделиться

Это сложный вопрос. Выполнение сравнения означает поиск минимального расстояния редактирования между двумя файлами. То есть минимальное количество изменений, которые вы должны внести, чтобы преобразовать один файл в другой. Это эквивалентно поиску самой длинной общей подпоследовательности строк между двумя файлами, и это основа для различных программ сравнения. Самая длинная общая проблема с подпоследовательностями хорошо известна, и вы сможете найти решение динамического программирования в Google.

Проблема с подходом динамического программирования в том, что это O (n ^ 2). Таким образом, он очень медленный для больших файлов и непригоден для больших двоичных строк. Самая сложная часть в написании программы сравнения - оптимизация алгоритма для вашей проблемной области, чтобы вы получили разумную производительность (и разумные результаты). Бумага "

4
ответ дан 6 December 2019 в 11:52
поделиться
Другие вопросы по тегам:

Похожие вопросы: