@sresort

Как грамотно сравнивать два файла?

Подскажите как грамотно реализовать?

Что я хочу? Считываю файл по кускам(буферам размера N байт скажем)
Если у обоих буферов все символы печатаемые, то вывести отличие в текстовом режиме(после первого отличия завершаемся в любом из режимов)
абвгд
++
аттгд

Если хотя бы один не печатаемый, то выводим в hex
Вот пример:
Discrepancy at byte 51(0x33) (EF vs 77)

00000030 DD AD BE FF CD CD CD CD | 00 00 00 00 00 00 00 00

++ |

00000030 DD AD BE 77 CD CD CD CD | 00 00 00 00 00 00 00 00

То что у меня реализовано на данный момент
Падает даже на банальном:
file1.txt
123
file2.txt
1234

Как работает мой алгоритм на текущий момент

обьясните как грамотно сделать эту функцию compare_files :C
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ответы на вопрос 1
lastuniverse
@lastuniverse
Всегда вокруг да около IT тем
Не придумывайте велосипед. Просто посмотрите как решают подобные вещи в других проектах, например git diff. В результате у вас будет аж 3 варианта использования:
1. использовать уже готовый продукт (например тот же git-diff) как консольную утилиту
2. использовать уже готовую библиотеку, решающую данный вопрос, подключив ее к своему коду
3. посмотреть код уже готовых продуктов и либо использовать его, либо на основе написать свой
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы