Jump to content

как сделать Diff


Recommended Posts

Привет,

Есть две версии файла и хочу записать только изменения (чтоб сделать пача)

Вопрос: как сделать?

Ок, читаем байт по байт и находим первий байт который различний

Как определить если несколько байта добавлени, удалени или просто измени?А

А то как я написал сейчась, если добавить 1 байт то програма определить всех после него как променени и пач будеть больше чем оригинальний файл.

Спасибо

Link to comment
Share on other sites

  • 3 weeks later...

Darhazer:

Хорошие алгоритмы, насколько я знаю, реализуются довольно сложно, с динамическим программированием. Проще использовать готовые программы.

Word умеет сравнивать два документа, выводя объединенный текст и выделяя вставки и пропуски относительно первого документа. Есть также много специализированных программ. Вот несколько, правда, примерно половина из них shareware :) :

WinMerge, Side by Side, FileDiff, CSDiff, Compare It, Active File Compare, ExamDiff.

P.S. Кажется, сначала я не совсем понял вопрос - требуется сравнение именно бинарных, а не текстовых файлов? Это вроде бы умеет из приведенных ранее Examdiff, и еще можно посмотреть UltraCompare, FCWin и GNU проект DiffUtils.

Edited by Тролль
Link to comment
Share on other sites

Тролль:

Что сложно уже сам узнал. Shurr подсказал ссылки на алгортими, но я не разобрался. Не разобрался и в изходниках WinMerge. А готовая программа не устраиваеть, мне нужно написать updater-а. Но решим проблему так: апдейт будет содержать весь файл и идентификация оригинального (примерно хэш). И если файл являеться оригинальний, просто заменяеть эго. Програма весить менее 10 MB, так что не так страшно, что апдейт будет ~10 MB, тем не менее, не будет качаться через Интернет :mellow:

Спасибо

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...