Сравнение двух файлов на идентичность содержимого

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
SHURUP
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 440
Зарегистрирован: 15.09.2004 (Ср) 14:24
Откуда: Ирпень, Украина

Сообщение SHURUP » 18.03.2005 (Пт) 0:58

Дык, контрольная сумма - может совпадать! Могу доказать!
Нам чужого не надо, но своё мы возьмем, чьё бы оно ни было...

Andrey Fedorov
Член-корреспондент академии VBStreets
Член-корреспондент академии VBStreets
 
Сообщения: 3287
Зарегистрирован: 21.05.2004 (Пт) 9:28
Откуда: Москва

Сообщение Andrey Fedorov » 18.03.2005 (Пт) 8:17

xolod писал(а):[ехидно так..]
Ну и конечно, уже после закрытия всех вопросов внесу лежку дегтя.
Любой здравомыслящий C'шник для определения идентичности файла посчитает контрольную сумму CRC32 и будет спать спокойно. Ведь это и быстрее в разы и куда удобнее.


С чего это быстрее и удобней? Для этого те-же файлы надо не просто прочитать, а еще и CRC32 для них просчитать... Это было бы удобней если бы CRC32 хранилась где-то в атрибутах файла и ее можно было бы просто считать.
Фиг Вам! - Сказал Чебурашка, обгладывая Крокодила Гену...

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 18.03.2005 (Пт) 15:32

SHURUP писал(а):Дык, контрольная сумма - может совпадать! Могу доказать!


Полностью согласен, думаю, доказывать и не нужно. Хотя, нет - докажи. Просто интересно, буду знать, как грамотно другим доказывать :)

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 18.03.2005 (Пт) 19:06

Господа, не надо ля-ля, ладно. CRC32 + sha1 (хэш) совпадать не будут никогда. Если еще сваять библу не Си, хорошо ее оптимизировать и вызывать из VB - то и скорость будет уххх..

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 18.03.2005 (Пт) 21:08

Стоп-стоп! А что за "+ sha1 (хэш)"? Речь была про CRC32. И опять-таки, я верю, что на С можно чего-то поделать. И на ассемблере тоже, может еще и быстрее. Но речь-то про VB!

xolod
Гуру
Гуру
 
Сообщения: 1162
Зарегистрирован: 15.01.2004 (Чт) 0:42
Откуда: Moscow

Сообщение xolod » 18.03.2005 (Пт) 22:30

dimix
Речь была именно про связку - контрольная сумма по хэшу. Просто я не дописал в посте +sha1. Только сейчас увидел.

Constant ERROR_SUCCESS deprecated. I'm so happy.
Программирование и дизайн – http://www.macrointellect.ru

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Сообщение alibek » 19.03.2005 (Сб) 17:05

CRC32 это 32 бита. SHA1 это вроде бы 160 бит. Всего - 192 бита или 24 байта, т.е. всего около 6E+57 возможных комбинаций бит. Если взять килобайтный файл, то в нем количество возможных комбинаций бит около 1E+2466, в дофига раз больше. Ты же не будешь утверждать, что пара CRC32+SHA1 будет уникальна всегда и везде?
К тому же, в задаче не надо было искать контрольную сумму или хэш, надо было просто сравнить два файла. Каким бы отлаженным и оптимизированным не был алгоритм, вычисление одного только CRC (а уж тем более SHA) всегда будет медленнее, чем побайтовое сравнение файлов.
Lasciate ogni speranza, voi ch'entrate.

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 21.03.2005 (Пн) 15:02

А кто против нас с alibek'ом? :D

Короче, я понял. Учитывая, что нужно определить лишь факт - отличаются или нет, буду выполнять побайтовое сравнение.
Всем ОГРОМНОЕ спасибо за помощь.

P.S. alibek награждается медалью "за профессиональный взгляд".

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 21.03.2005 (Пн) 15:06

советую сначала проверки сравнить размеры обоих файлов :D , по крайней мере может сыкономить время

dimix
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 174
Зарегистрирован: 08.02.2005 (Вт) 22:47

Сообщение dimix » 21.03.2005 (Пн) 15:21

Sirik писал(а):советую сначала проверки сравнить размеры обоих файлов :D , по крайней мере может сыкономить время


Само собой разумеется. В приведенных выше примерах это присутствует, поэтому на данном этапе никто об этом уже не говорит. Рекомендую читать сначала, а то через пару постов появится предложение посчитать CRC32 :)

Sirik
Perspicaz
Perspicaz
Аватара пользователя
 
Сообщения: 2280
Зарегистрирован: 19.02.2004 (Чт) 16:09
Откуда: Бердичев, Украина

Сообщение Sirik » 21.03.2005 (Пн) 15:24

.мда. действительно
lof(1)<>lof(2)

что-то сразу и не заметил...

Пред.

Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 138

    TopList