6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
|
1 | |
Сравнение бинарных файлов11.09.2014, 00:57. Показов 2838. Ответов 9
Метки нет (Все метки)
Здравствуйте. Сначала теоретический вопрос, мне необходимо отслеживать изменился файл или нет, тип файла может быть абсолютна различным. Решил для этой цели загружать в буфер файл и файл зафиксировавший его состояние (пока использовал простое копирование), ну а далее по средствам команды "CompareMem(...)" сравнивать. Недостатком такого метода является сильная нагрузка на память компьютера при проверки больших файлов. Собственно вопрос: как по вашему мнение, адекватный это способ проверки изменения файла или нет? если нет, то пожалуйста подскажите другой способ.
Второй же вопрос хотелось бы фиксировать состояние файла в СУБД. Но вот как это сделать? То есть как записать в базу данных файл различного формата (будь то doc или же exe, ну или другого формата). Для реализации задачи использую язык С++ в среде Rad studio, в качестве базы данных решил использовать Access (выбор был временным, но раз начал, то стоит научиться в access помещать файлы).
0
|
11.09.2014, 00:57 | |
Ответы с готовыми решениями:
9
Перезапись текстовых и бинарных файлов Загрузка данных из бинарных файлов и сохранение построчно в .dat файл Сравнение 2х файлов Бинарное сравнение файлов |
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
||||||||||||||||||||||||||
11.09.2014, 10:16 [ТС] | 3 | |||||||||||||||||||||||||
gazlan, спасибо за совет использовать хеш.
Но у меня возникла ещё одна проблема, как загрузить файл в 16-тиричном виде, ну или другом, главное чтоб далее можно применять хеш функцию. До этого применял
Добавлено через 52 минуты Добавлено через 21 минуту Уважаемые гуру, помогите пожалуйста разобраться с алгоритмом murmur3. Вот нашел реализованный алгоритм
Насколько я понял переменные которые использует функция: const char *key, uint32_t len, uint32_t seed const char *key - это ключ по которому идёт шифрование. Так как в моей задаче необходимо лишь проверять целостность, можно ли от неё избавиться? uint32_t len - размер файла. uint32_t seed - набор символов для обработки, именно в этой переменной и будет подаваться на обработку файл. Теперь по применению этой функции, вот как её вызываю:
[BCC32 Error] Unit1.cpp(171): E2293 ) expected Full parser context Unit1.cpp(164): parsing: void _fastcall TForm1::Button3Click(TObject *) Добавлено через 8 минут хм, нужно бы поспать, по поводу применения моя глупая ошибка, нужно вызывать
0
|
11.09.2014, 16:04 | 4 |
Это еще зачем? Хэш считается от (бинарного) файла.
1
|
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
||||||
14.09.2014, 21:12 [ТС] | 5 | |||||
И снова я с глупым вопросом. Вот код вызова функции:
И ещё один момент который я так же не могу понять, функция которую я вызываю использует return на переменную типа uint32_t, если я правильно понимаю, то это unsigned int, но почему то порой выводятся отрицательные числа.
0
|
14.09.2014, 22:23 | 6 |
На Delphi (или что там у вас с TMemoryStream) не пишу, но подозреваю, что строки 5-14 совершенно излишни. Если MS1 - указатель на файл в памяти, то судя по Google, у него есть property Memory: Pointer;
0
|
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
||||||
14.09.2014, 22:59 [ТС] | 7 | |||||
Уважаемый gazlan, огромное спасибо в помощи!
Последнюю проблему решил после того как вы указали, посмотреть на этот TMemoryStream. Правильный код вызова:
0
|
14.09.2014, 23:14 | 8 |
Я все еще не понимаю, зачем нужен char *buf = new char[MS1->Size];. IMHO, TMemoryStream уже имеет собственный буфер (Memory) и нет нужды ничего побайтно из него копировать - прямо передайте указатель на Memory в хэш-функцию.
0
|
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
||||||
15.09.2014, 00:41 [ТС] | 9 | |||||
gazlan, я пробовал так делать:
[BCC32 Error] Unit1.cpp(143): E2034 Cannot convert 'void * const' to 'const char *' Full parser context Unit1.cpp(109): parsing: void _fastcall TForm1::FiksClick(TObject *)
0
|
15.09.2014, 01:43 | 10 | |||||
Ну, так сделайте явное приведение типа:
0
|
15.09.2014, 01:43 | |
15.09.2014, 01:43 | |
Помогаю со студенческими работами здесь
10
Сравнение звуковых файлов Запись, сравнение звуковых файлов Поиск и Сравнение файлов по дате создания Сравнение бинарных файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |