1.8K
07 сентября 2008 года
igor_nf
256 / / 13.12.2006
Проблема состоит в написании программы, анализирующей конфигурационные файлы, точнее, сравнивающей контент двух файлов. С точки зрения внутренней структуры конфигурационные файлы - это обычные текстовые файлы, возможно содержащие комментарии. Само по себе построчное сравнение файлов выполнить просто. Но этого мало. Я разделил изменения, затрагивающие файл на изменения горизонтальной ориентации(пример - изменение в конкретной строке) и изменения вертикальной ориентации(пример - добавление новой строки). С первым справляется построчное сравнение. Вот со вторым сложнее. Если в файл добавляются новые строки, программа должна каким-нибудь адекватным образом на это реагировать - например так: "В файл X были добавлены строки номер ... , в остальном файлы идентичны". Точно так же и с удалением строк..
Плиз, пните в нужном направлении - какой алгоритм выбрать ? В голову ничего не приходит, кроме как начать с построчного сравнения файлов, а вот ЕСЛИ встретятся неидентичные строки, ТОГДА анализировать ближайшее окружение(N строк вверх и вниз..) на идентичность и далее всё новые и новые костыли со всеми вытекающими последствиями(загромождённость кода, рост сложности ..)
Должно же быть эффективное решение ?