![]() |
Модераторы: Daevaorn |
![]() ![]() ![]() |
|
sol78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
Я ищу что вроде smart compare for HTML files.
Чтобы сравнивал содержание файлов и выдавал разницу? Может кто то уже встречал что то подобное? Смысл этого в том что что я не хочу получать некоторые различия между файлами, поэтому byte compare не подходит. |
|||
|
||||
codelord |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 777 Регистрация: 7.5.2005 Где: ты моя темноглаза я где?! Репутация: 1 Всего: 39 |
А по какой логике надо сравнивать?
например на вскидку ручками так: Удаляем html теги из сравниваемых файлов, разбиваем по словам, засовываем по словам через разделитель в vector< std::string >, каждый из файлов и говорим std::sort и std::set_difference на два эти вектора, получаем разницу. |
|||
|
||||
chaos |
|
|||
![]() Серийный программист ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 2979 Регистрация: 7.7.2004 Где: Екатеринбург Репутация: 6 Всего: 44 |
||||
|
||||
sol78 |
|
|||
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 366 Регистрация: 7.7.2007 Репутация: 1 Всего: 0 |
Как это работает сейчас, например сравниваю 2 файла получаю разницу потом использую какою либо
прогу, например wincom, и сама анализирую разницу, например определить линк можно по разному, но он стается один и тот же линк. Поэтому хочется что то более умное.... |
|||
|
||||
Torsten |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 10.6.2008 Где: Pskov Репутация: 3 Всего: 7 |
Правильно поставленный вопрос, дает 50% правильного ответа.
если считать вопросом : то я таких не видел, обычные которые используются в контролях версий итп и самый (на мой взгляд конечно же) удобный araxis тоже этого делать не умеет. Только по тупому, сравнить, определить куда какие строки перенесли, какие добавили и удалили. Так же предпологаю что таких и нету. Это сообщение отредактировал(а) Torsten - 7.11.2008, 16:33 --------------------
We have no begining, we have no end. We are infinite. |
|||
|
||||
skyboy |
|
|||
неОпытный ![]() ![]() ![]() ![]() Профиль Группа: Модератор Сообщений: 9820 Регистрация: 18.5.2006 Где: Днепропетровск Репутация: 1 Всего: 260 |
sol78, вся проблема - в отсутствии ясности.
тебе надо сравнивать именно HTML? Тогда надо сравнивать не только текст, но и структуру. Возможно, строить дерево DOM, некоторые атрибуты игнорировать(class, title), некоторые элементы игнорировать(<hr>, <br>), некоторые элементы приводить к общему виду(> => ">") тебе надо сравнивать универсально и настраиваемо с исключениями из сравнения? создай к байтовой сравнялке механизм исключений - кормишь пару различий, а механизм определяет - правда ли куски различны, или различия можно игнорировать. можно сделать плагинами и определять условия через регулярные выражения. можно подключать как плагины простые скрипты, которые будут учитывать и окружающий различия текст. или тебе надо просто программа, которая подобное умеет и просто выбран не тот раздел? тогда так и скажи. если надо с исходниками - ищи на sourceforge.net тот же WinMerge имеет механизм исключений(правда, немного другой - там строки, совпадающие с регуляркой, вообще исключаются из сравнения) |
|||
|
||||
Lazin |
|
|||
![]() Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 3820 Регистрация: 11.12.2006 Где: paranoid oil empi re Репутация: 41 Всего: 154 |
c html файлами это будет сложно сделать, для xhtml можно использовать XML DOM parser, а обычный html - очень неоднозначен и сложен для разбора, там к примеру может не быть некоторых закрывающих тэгов
![]() Добавлено через 2 минуты и 7 секунд вообще, если-бы вопрос был бы задан в разделе по python, я бы посоветовал beautiful soup, а какие html парсеры есть для с++ я не знаю ![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "С++:Общие вопросы" | |
|
Добро пожаловать!
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |