Darhazer Posted December 14, 2005 Report Share Posted December 14, 2005 Привет, Есть две версии файла и хочу записать только изменения (чтоб сделать пача) Вопрос: как сделать? Ок, читаем байт по байт и находим первий байт который различний Как определить если несколько байта добавлени, удалени или просто измени?А А то как я написал сейчась, если добавить 1 байт то програма определить всех после него как променени и пач будеть больше чем оригинальний файл. Спасибо Link to comment Share on other sites More sharing options...
Тролль Posted December 29, 2005 Report Share Posted December 29, 2005 (edited) Darhazer: Хорошие алгоритмы, насколько я знаю, реализуются довольно сложно, с динамическим программированием. Проще использовать готовые программы. Word умеет сравнивать два документа, выводя объединенный текст и выделяя вставки и пропуски относительно первого документа. Есть также много специализированных программ. Вот несколько, правда, примерно половина из них shareware :) : WinMerge, Side by Side, FileDiff, CSDiff, Compare It, Active File Compare, ExamDiff. P.S. Кажется, сначала я не совсем понял вопрос - требуется сравнение именно бинарных, а не текстовых файлов? Это вроде бы умеет из приведенных ранее Examdiff, и еще можно посмотреть UltraCompare, FCWin и GNU проект DiffUtils. Edited December 30, 2005 by Тролль Link to comment Share on other sites More sharing options...
Darhazer Posted January 2, 2006 Author Report Share Posted January 2, 2006 Тролль: Что сложно уже сам узнал. Shurr подсказал ссылки на алгортими, но я не разобрался. Не разобрался и в изходниках WinMerge. А готовая программа не устраиваеть, мне нужно написать updater-а. Но решим проблему так: апдейт будет содержать весь файл и идентификация оригинального (примерно хэш). И если файл являеться оригинальний, просто заменяеть эго. Програма весить менее 10 MB, так что не так страшно, что апдейт будет ~10 MB, тем не менее, не будет качаться через Интернет :mellow: Спасибо Link to comment Share on other sites More sharing options...
Recommended Posts
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 accountSign in
Already have an account? Sign in here.
Sign In Now