Модераторы: Daevaorn
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> smart compare for files 
:(
    Опции темы
sol78
Дата 6.11.2008, 14:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



Я ищу что вроде smart compare for HTML files. 
Чтобы сравнивал содержание файлов и выдавал разницу?
Может кто то уже встречал что то подобное?

Смысл этого  в том что что я не хочу получать некоторые различия между файлами, поэтому  byte compare не подходит.
PM MAIL   Вверх
codelord
Дата 7.11.2008, 10:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 777
Регистрация: 7.5.2005
Где: ты моя темноглаза я где?!

Репутация: 1
Всего: 39



А по какой логике надо сравнивать? 
например на вскидку ручками так: 
Удаляем html теги из сравниваемых файлов, разбиваем по словам,   засовываем по словам через разделитель 
в vector<  std::string  >, каждый из файлов и говорим std::sort и std::set_difference  
на два эти вектора, получаем разницу. 



--------------------
Доступен поиск по исходным кодам в GOOGLE.
http://www.google.com/codesearch
PM MAIL   Вверх
chaos
Дата 7.11.2008, 11:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Серийный программист
****


Профиль
Группа: Завсегдатай
Сообщений: 2979
Регистрация: 7.7.2004
Где: Екатеринбург

Репутация: 6
Всего: 44



sol78, можно посмотреть diff из линуха
http://www.gnu.org/software/diffutils/diffutils.html
PM WWW   Вверх
sol78
Дата 7.11.2008, 16:20 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 366
Регистрация: 7.7.2007

Репутация: 1
Всего: 0



Как это работает сейчас, например сравниваю 2 файла получаю разницу потом использую какою либо
прогу, например wincom, и сама анализирую разницу, например определить линк можно по разному, но он стается один и тот же линк. Поэтому хочется что то более умное.... 
 
PM MAIL   Вверх
Torsten
Дата 7.11.2008, 16:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 174
Регистрация: 10.6.2008
Где: Pskov

Репутация: 3
Всего: 7



Правильно поставленный вопрос, дает 50% правильного ответа.
если считать вопросом :
Цитата(sol78 @  6.11.2008,  14:39 Найти цитируемый пост)
Чтобы сравнивал содержание файлов и выдавал разницу?

то я таких не видел, обычные которые используются в контролях версий итп и самый (на мой взгляд конечно же) удобный araxis тоже этого делать не умеет. Только по тупому, сравнить, определить куда какие строки перенесли, какие добавили и удалили.

Так же предпологаю что таких и нету. 


Это сообщение отредактировал(а) Torsten - 7.11.2008, 16:33
--------------------
We have no begining, we have no end. We are infinite.
PM MAIL   Вверх
skyboy
Дата 7.11.2008, 17:07 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


неОпытный
****


Профиль
Группа: Модератор
Сообщений: 9820
Регистрация: 18.5.2006
Где: Днепропетровск

Репутация: 1
Всего: 260



sol78, вся проблема - в отсутствии ясности.
тебе надо сравнивать именно HTML? Тогда надо сравнивать не только текст, но и структуру. Возможно, строить дерево DOM, некоторые атрибуты игнорировать(class, title), некоторые элементы игнорировать(<hr>, <br>), некоторые элементы приводить к общему виду(&gt; => ">")
тебе надо сравнивать универсально и настраиваемо с исключениями из сравнения? создай к байтовой сравнялке механизм исключений - кормишь пару различий, а механизм определяет - правда ли куски различны, или различия можно игнорировать. можно сделать плагинами и определять условия через регулярные выражения. можно подключать как плагины простые скрипты, которые будут учитывать и окружающий различия текст.
или тебе надо просто программа, которая подобное умеет и просто выбран не тот раздел? тогда так и скажи. если надо с исходниками - ищи на sourceforge.net
тот же WinMerge имеет механизм исключений(правда, немного другой - там строки, совпадающие с регуляркой, вообще исключаются из сравнения)
PM MAIL   Вверх
Lazin
Дата 7.11.2008, 17:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


Профиль
Группа: Завсегдатай
Сообщений: 3820
Регистрация: 11.12.2006
Где: paranoid oil empi re

Репутация: 41
Всего: 154



c html файлами это будет сложно сделать, для xhtml можно использовать XML DOM parser, а обычный html - очень неоднозначен и сложен для разбора, там к примеру может не быть некоторых закрывающих тэгов smile

Добавлено через 2 минуты и 7 секунд
вообще, если-бы вопрос был бы задан в разделе по python, я бы посоветовал beautiful soup, а какие html парсеры есть для с++ я не знаю smile 
PM MAIL Skype GTalk   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++:Общие вопросы"
Earnest Daevaorn

Добро пожаловать!

  • Черновик стандарта C++ (за октябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика(4.4мб).
  • Черновик стандарта C (за сентябрь 2005) можно скачать с этого сайта. Прямая ссылка на файл черновика (3.4мб).
  • Прежде чем задать вопрос, прочтите это и/или это!
  • Здесь хранится весь мировой запас ссылок на документы, связанные с C++ :)
  • Не брезгуйте пользоваться тегами [code=cpp][/code].
  • Пожалуйста, не просите написать за вас программы в этом разделе - для этого существует "Центр Помощи".
  • C++ FAQ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Earnest Daevaorn

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C/C++: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0835 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.