Перейти к содержанию
СофтФорум - всё о компьютерах и не только

как сделать Diff


Рекомендуемые сообщения

Привет,

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

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

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

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

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

Спасибо

Ссылка на комментарий
Поделиться на другие сайты

  • 3 недели спустя...

Darhazer:

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

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

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

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

Изменено пользователем Тролль
Ссылка на комментарий
Поделиться на другие сайты

Тролль:

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

Спасибо

Ссылка на комментарий
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...