Форум: "Начинающим";
Текущий архив: 2008.03.09;
Скачать: [xml.tar.bz2];
Вниз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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.331 c