|
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
|
Сравнение бинарных файлов11.09.2014, 00:57. Показов 3134. Ответов 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 [ТС] | ||||||||||||||||||||||||||
|
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 | ||||
1
|
||||
|
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
||||||
| 14.09.2014, 21:12 [ТС] | ||||||
|
И снова я с глупым вопросом. Вот код вызова функции:
И ещё один момент который я так же не могу понять, функция которую я вызываю использует return на переменную типа uint32_t, если я правильно понимаю, то это unsigned int, но почему то порой выводятся отрицательные числа.
0
|
||||||
| 14.09.2014, 22:23 | ||||
0
|
||||
|
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
||||||
| 14.09.2014, 22:59 [ТС] | ||||||
|
Уважаемый gazlan, огромное спасибо в помощи!
Последнюю проблему решил после того как вы указали, посмотреть на этот TMemoryStream. Правильный код вызова:
0
|
||||||
| 14.09.2014, 23:14 | |
|
Я все еще не понимаю, зачем нужен char *buf = new char[MS1->Size];. IMHO, TMemoryStream уже имеет собственный буфер (Memory) и нет нужды ничего побайтно из него копировать - прямо передайте указатель на Memory в хэш-функцию.
0
|
|
|
6 / 6 / 2
Регистрация: 07.11.2012
Сообщений: 95
|
||||||
| 15.09.2014, 00:41 [ТС] | ||||||
|
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 | ||||||
|
Ну, так сделайте явное приведение типа:
0
|
||||||
| 15.09.2014, 01:43 | |
|
Помогаю со студенческими работами здесь
10
Сравнение звуковых файлов Запись, сравнение звуковых файлов
Сравнение бинарных файлов Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
Новые блоги и статьи
|
|||
|
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net
REST сервисы временно не работают, только через Web.
Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
|
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
|
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
|
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма).
На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
|
|
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ *
Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи
и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
|
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым.
Но восстановить их можно так.
Для этого понадобится консольная утилита. . .
|
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
|
WordPad для Windows 11
Jel 10.01.2026
WordPad для Windows 11
— это приложение, которое восстанавливает классический текстовый редактор WordPad в операционной системе Windows 11. После того как Microsoft исключила WordPad из. . .
|