![]() |
Модераторы: Snowy, bartram, MetalFan, bems, Poseidon, Riply |
![]() ![]() ![]() |
|
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: нет Всего: 1 |
Всем привет!
Хотелось бы узнать как можно сравнить два файла (по байтам) и сделать вывод, на сколько процентов один файл совпал с другим... Хотя бы с чего начинать? Как это можно организовать с потоками? и тот же вопрос, если файл больших размеров, 2,3,5 гб? Примерно прикинул, думаю что нужно куда то писать, совпавшие байты, и не совпавшие, а потом посчитать и далее по формуле...? Это сообщение отредактировал(а) Antony41 - 19.12.2009, 01:54 |
|||
|
||||
Демо |
|
|||
![]() Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1278 Регистрация: 3.11.2005 Репутация: 6 Всего: 50 |
Проблема в том, чтобы прочитать файл? Или в чём?
-------------------- |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
А файлы какого то формата или просто набор битов? А файлы одинаковые по размеру или может быть ситуация при которой первый фал размером в гиг может полностью включать в себя файл размером в пол гига?
Файлы размером больше 2 гиг придется резать... Тяжело адресовать смещение на 2^31 |
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: нет Всего: 1 |
Проблема в том, куда записывать совпавшие байты и не совпавшие
Добавлено @ 02:35 Файлы любого формата, независимо, файлы могут быть разным размером, да может быть и такое что пол гига и гиг. Ну я думаю можно обойтись и без резания, мне кажется что для сравнения, можно будет использовать до двух тоесть если первый файл будет размером 3 гб, а второй 5, то я думаю сравнить 2 гига вполне хватит, а остальное просто отрубить))) Основная проблема в том, что придётся сравнивать большое количество файлов, например до 7 - 8 тыс. то есть если например в списке будет 7000 файлов, то эту процедуру придётся выполнять 24 496 500 раз. Это сообщение отредактировал(а) Antony41 - 19.12.2009, 02:44 |
|||
|
||||
~FoX~ |
|
|||
![]() НЕ рыжий!!! ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 2819 Регистрация: 8.10.2003 Где: Зеленоград Репутация: 0 Всего: 68 |
Antony41, Не очень понятно, есть файл с содержимым - 0123 и есть файл - 123 если сравнить их побитово то совпадений не будет... Чтобы узнать совпадения нужно сравнивать какой то средний показатель... Например представить файл в битовой маски и сравнивать спектр участка, или использовать вейлветы или другой какой нибудь критерий.... С коэффициентами... Копать нужно в сторону алгоритмов сжатия и оптимизированного статистического анализа... Иначе анализ 7000 файлов с возможностями присутствия в каждом из каждых последовательностей превращается в задачу по распределенным вычислениям и займет оооочень много времени...
|
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: нет Всего: 1 |
Вот и я всё это понимаю, но теоретически то это возможно... Сейчас буду думать
Работаю сейчас с таким алгоритмом, он в принципе работает нормально, но иногда его можно и обмануть)) Спасибо Fox сейчас буду что нибудь думать. Еще отпишусь в этом разделе... |
|||
|
||||
Antony41 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 332 Регистрация: 27.12.2008 Репутация: нет Всего: 1 |
в принципе всё ясно! пытался, но толком ни чего не вышло использую пока функцию не точного сравнения участков
примерно так
Как можно ускорить эту функцию? Это сообщение отредактировал(а) Antony41 - 19.12.2009, 08:38 |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: WinAPI и системное программирование" | |
|
Запрещено: 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, bartram, MetalFan, bems, Poseidon, Rrader, Riply. |
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: WinAPI и системное программирование | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |