![]() |
Алгоритм сравнения бинарных файлов
Если честно, то я не знаю как это правильно называется, поэтому поясню на примере.
Файл 1 - исходный: Код:
aaabbbcccddd Код:
abababcdcdcd Код:
Position 2, rewrite : baba Предполагаю, что найденные мною подобные алгоритмы для текстовых файлов не подойдут для бинарных (пока не пробовал). Зато попытался написать свой алгоритм, кстати не очень успешно - часто где-то зацикливается и умеет применять только 3 команды (заменить, вставить, удалить), хотелось бы иметь еще переместить, копировать, заполнить последовательность и т.д. Жду комментариев по проблеме. |
Кстати хорошая была бы олимпиадная задачка... Сделать генератор минимальных дифов. Тут можно много где проявиться...
Насколько я понимаю, теория лежащая в основе таких патчей будет та же самая, что и для текстовых патчеров (diff/patch). но т.к. я этой теории не знаю, то буду молчать :) Вот что нашлось гуглом: http://www.xmailserver.org/xdiff-lib.html . Не знаю как оно работает, лень разбираться. Там же лежат две какие-то бумаги на эту тему, не смотрел. |
ivank
Спасибо за ссылку, но гораздо больше ты мне помог тем, что подсказал правильный поисковый запрос для гугля. Итог - найден виндовый порт утилиты bsdiff/bspatch: http://sites.inka.de/tesla/download/...-win32-src.zip (щас разбираемся, что к чему; к сожалению почти отсутствуют комментарии к тексту программ) Цитата:
|
Время: 12:43. |
Время: 12:43.
© OSzone.net 2001-