Вверх ↑
Ответов: 4581
Рейтинг: 730
#1: 2021-10-13 17:03:29 ЛС | профиль | цитата
Ну, а почему именно по 5 байт? Вероятно, там будет циклический поиск с постепенно увеличивающейся длиной. Если для выявления отличий байты сравниваются, то для выявления вставки/удаления фрагментов начиная с первого отличия ищутся совпадения (при этом длина для совпадающего фрагмента постепенно увеличивается). Это позволит выявить границы вставленных и удаленных фрагментов. Но опять же, некоторые случаи, типа, вставки нескольких байт и изменения нескольких последующих байт могут затруднять принятие решения.

Потренируйся, например, на сравнении файлов в TotalCommander - как он ведет себя с текстовыми и двоичными файлами. Например, при вставке в текстовый файл фрагмента и небольшого изменения последующего текста TotalCommander иногда показывает отличия с места вставки и до конца файла, не имея возможности определить конец добавленного фрагмента. Тогда на помощь приходит команда "установить маркер ручного сопоставления" - мы вручную указываем конец вставленного фрагмента, а дальнейшее сравнение покажет корректный результат.
карма: 26

0
Редактировалось 5 раз(а), последний 2021-10-13 17:09:20