Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2008.03.09;
Скачать: CL | DM;

Вниз

TFileStream +контрольная сумма   Найти похожие ветки 

 
алекс2   (2008-02-13 17:59) [0]

Есть у меня свой файловый формат с данными, но сейчас получается большой файл по объему. Я читал заголовок, в нем в одном из полей хранил md5 дальнейшего буфера с данными. А потом просто проверял сохраненный хэш с текущим.

Но сейчас размер данных возрос, и загружать большой кусок данных в MemoryStream не приемлемо. Что посоветуете?

Примерно так делал:

 FS := TFileStream.Create("c:/file.file", fmOpenRead);
 ...
 MS := TMemoryStream.Create;
 MS.CopyFrom(FS, SizeWithoutHeader);
 ...
 ..Md5(MS)..


 
DiamondShark ©   (2008-02-13 18:05) [1]


> Что посоветуете?


..Md5(FS)..


 
алекс2   (2008-02-13 18:09) [2]

Это моя ошибка, на самом деле:

Md5(Ms)

---

если я буду получать хэш самого файла - то вместе с заголовком. тогда где хранить саму контрольную сумму?


 
Джо ©   (2008-02-13 18:11) [3]

> [2] алекс2   (13.02.08 18:09)
> Это моя ошибка, на самом деле:
>
> Md5(Ms)
>
> ---
>
> если я буду получать хэш самого файла - то вместе с заголовком.
> тогда где хранить саму контрольную сумму?

А зачем делать контрольную сумму заголовка?


 
DiamondShark ©   (2008-02-13 19:32) [4]


> если я буду получать хэш самого файла - то вместе с заголовком.

с чего бы это?
заголовок ты прочтёшь раньше, позиция в стриме будет после заголовка.
процедура Md5() начнёт читать сразу после заголовка, если, конечно, в ней нет вызова Seek(0)


 
Anatoly Podgoretsky ©   (2008-02-14 13:40) [5]

> алекс2  (13.02.2008 17:59:00)  [0]

MS.CopyFrom(FS, SizeWithHeader);


 
Anatoly Podgoretsky ©   (2008-02-14 13:43) [6]

> Anatoly Podgoretsky  (14.02.2008 13:40:05)  [5]

MS.CopyFrom(FS, SizeHeader);



Страницы: 1 вся ветка

Текущий архив: 2008.03.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.197 c
2-1202917124
patrick1968
2008-02-13 18:38
2008.03.09
ADO внутри потока


3-1193045210
NNH
2007-10-22 13:26
2008.03.09
Обновление запроса UPDATE


2-1202585855
Петр
2008-02-09 22:37
2008.03.09
проверка строки на символы


10-1143039604
ALXPLN
2006-03-22 18:00
2008.03.09
Перехватить действие в Exel e


15-1201722950
Марсер
2008-01-30 22:55
2008.03.09
Бесплатный прокси-сервер для обеспечения ноутбука Инетом