![]() |
Модераторы: Poseidon, Snowy, bems, MetalFan |
![]() ![]() ![]() |
|
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
Суть задачи в том что существует массив записей,
необходимо посчитать контрольную сумму(CRC32 к примеру) каждой записи и записать в отдельный массив. В моем случае проблема выходит такая, что при расчете совершенно одинаковых записей(по значению) CRC32 хэш получается разный.
Каким образом верно рассчитать контрольную сумму CRC32 для Record, может быть кто-то сталкивался? GetCRC32() использовался различный, возможно неверно. Это сообщение отредактировал(а) Flashboy - 24.3.2011, 15:32 |
|||
|
||||
cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 7 Всего: 15 |
Ну проверить то просто! Если GetCrc32 возвращает разный хэш от константной строки, то значит проблема в GetCrc32, если нет то проблшема с реализацией алгоритма
Добавлено @ 16:55 На сколько я помню в Crc32 хэш 4-х байтный, и входной параметр буфера должен быть 4-х байтный. А у тебя запись более 16 байт. Далее, в записи у тебя параметр указатель на строку, который при каждом перераспределении памяти будет иметь разное значение! поэтому у тебя и Хэш разный Добавлено @ 16:59 Замени Name: string и hash: string, на array [0..MaxValue] of char; В этом варианте, память расходуется не эффективно, но зато работать будет корректно! Это сообщение отредактировал(а) cat512 - 24.3.2011, 17:02 |
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
Проблема оказалось вот в чем:
1. Структура содержала Constructor 2. элемент структуры Name: String; - строка неопределенной величины. После таких изменений все заработало:
Это сообщение отредактировал(а) Flashboy - 24.3.2011, 17:16 |
|||
|
||||
Flashboy |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 41 Регистрация: 13.3.2010 Репутация: нет Всего: нет |
cat512, спасибо. Сам пришел к тому же только другим путем.
|
|||
|
||||
cat512 |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 438 Регистрация: 20.3.2007 Репутация: 7 Всего: 15 |
Cheers!
![]() |
|||
|
||||
![]() ![]() ![]() |
Правила форума "Delphi: Общие вопросы" | |
|
Запрещается! 1. Публиковать ссылки на вскрытые компоненты 2. Обсуждать взлом компонентов и делиться вскрытыми компонентами
Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Snowy, MetalFan, bems, Poseidon, Rrader. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Delphi: Общие вопросы | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |