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

как сделать 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:

Спасибо

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

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

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

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