Что нового

Как реализовать сравнение двух строк и подсветку различий между ними?

Suppir

Продвинутый
Сообщения
967
Репутация
62
Есть две строки:

Постановление главы администрации (губернатора) Краснодарского края от 19.10.2009 N 924 "О внесении изменении в постановление главы администрации (губернатора) Краснодарского края от 17.04.2009 года N 290 "Об утверждении долгосрочной краевой целевой программы развития общественной инфраструктуры муниципального значения на 2009 - 2011 годы"

и

Постановление главы администрации (губернатора) Краснодарского края от 19.10.2009 N 924 "О внесении изменений в постановление главы администрации (губернатора) Краснодарского края от 17.04.2009 года N 290 "Об утверждении долгосрочной краевой целевой программы развития общественной инфраструктуры муниципального значения на 2009 - 2011 годы"


Необходимо найти все различия между строками и подсветить их цветом. В идеале должно быть вот так:



У кого какие идеи?


Добавлено:
Сообщение автоматически объединено:

Идея 1:
разбить строку А на массив А-массив, состоящий из одиночных символов
разбить строку Б на массив Б-массив, состоящий из одиночных символов

перебирая А-массив, перебирать Б-массив
если элемент А-массив[$x] <> элементу Б-массив[$x], то запомнить $x (индекс первого расхождения) в массив РАЗНИЦА и двигаться далее.

Имея индексы расхождений, можно подсветить соответствующие элементы строк с помощью библиотеки RichEdit UDF
 

Neldezheil

B like Bee
Сообщения
27
Репутация
3
насколько я помню из сей - сравнение строк происходит посимвольно.
алгоритм:
1. сохраняем строку1 в массив $String1
2. сохраняем строку2 в массив $String2
3. определяем длину строки 1 и 2
4. сравниванием полученные длины и выбираем большую
5. делаем цикл от 0 до максимальной длины-1 (например, длина 250 - в цикле от 0 до 249), в котором поэлементно сравниваем символы: если совпадают - идем дальше, если нет - в отдельный массив записываем индекс несовпавшего символа.
в итоге у нас появляется массив с номерами символов, которые не совпадают
6. в цикле красим/подчеркиваем данные символы

пока писал алгоритм - ты уже сам додумался/додумалась :smile:
 

kaster

Мой Аватар, он лучший самый
Команда форума
Глобальный модератор
Сообщения
4 020
Репутация
622
Suppir
я поправил твой пост, и теперь вместо огромной картинки там маленькая с возможностью делать превью. придерживайся, пож-та, того же в будущем
 
Верх