|
#1
|
|||
|
|||
Чтение файла
Нужно считать 521728 байт из файла и прогнать через хэш-функцию MD5. Как лучше сделать?
|
#2
|
||||
|
||||
Читай из файла при помощи BlockRead в переменную типа массив байт...
BlockRead(F: File, Buf: Var, Size: Word, Result: Word) F: File; - переменная типа File; Именно из этой переменной и происходит чтение данных. Buf: Var; - переменная любого типа. В эту переменную помещаются прочитанные данные. Size: Word; - количество считываемых байт. Result: Word; - в эту переменную помещается реальное количество байт, которые были прочитаны. В начале был Бит, потом Байт и только потом появилось Слово... Последний раз редактировалось NIch, 04.03.2010 в 15:48. |
#3
|
|||
|
|||
В юните c функциями MD5 есть получение хэша потоков (Stream) - можно потоками реализовать?
А, да, ещё думал отредактировать саму процедуру хэширования, чтобы она хешировала не весь файл (TFileStream), а до указанного количества байт, но т.к. я не работал раньше с потоками - могу только примерно представить как это работает. Последний раз редактировалось UltraBloxX, 04.03.2010 в 15:57. |
#4
|
||||
|
||||
Пример работы с FileStream
http://www.delphisources.ru/pages/fa...ead_write.html Если не разбираешься в MD5, то не рекоммедную ее менять... В начале был Бит, потом Байт и только потом появилось Слово... Последний раз редактировалось NIch, 04.03.2010 в 16:03. |
#5
|
|||
|
|||
Upd: Проблема с пустым буфером решена открытием файла только для чтения.
Последний раз редактировалось UltraBloxX, 04.03.2010 в 17:30. |
#6
|
|||
|
|||
Хех, тему можно крыть. Буффер нормально хэшируется.
|