Форум: "Система";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
ВнизЧтение двоичных файлов Найти похожие ветки
← →
Zirus (2003-04-12 15:53) [0]Здравствуйте! Имеем файл. Требуется прочитать его readblock-ами. (Какой оптимальный размер блока?) И как создать буффер на 1к(пусть будет такой буффер)?
Как быть, когда до конца файла осталось <8 байт - а блок=8 байт? Вылетает ошибка!
← →
MBo (2003-04-12 16:15) [1]>Вылетает ошибка!
Ты не используешь последний параметр процедуры - количество реально считанных записей. С ним будет все нормально.
размер блока разумно делать пропорциональным размеру кластера винчестера - 512,1024,2048, 4096 байт и т.д. Для больших винчестеров - 4096 и более предпочтительно.
var Buf:array[0..4095] of byte;
← →
Zirus (2003-04-12 16:48) [2]Спасибо!
если кому понадобится - вот текст(копирование файла).
procedure TForm1.Button1Click(Sender: TObject);
var x: array[1..16384] of byte;
y: integer;
f,f1:file;
begin
assignfile(f,"C:\baikal\MapRastr\Map0.bmp");
assignfile(f1,"c:\6.");
rewrite(f1);
reset(f1,1);
reset(f,1);
while eof(f)=false do begin
blockread(f,x,16384,y);
//edit1.text:=edit1.text+x;
blockwrite(f1,x,y);
end;
closefile(f);
closefile(f1);
end;
← →
MBo (2003-04-12 16:53) [3]BTW, СopyFile имеется
← →
Anatoly Podgoretsky (2003-04-12 18:21) [4]И особоизвращенная версия СopyFileEx
Надо вхять за правило не писать, тчо что имеет ся в системе
← →
Zirus (2003-04-14 12:27) [5]1) моя версия копирования работает на 10-15% быстрее аналогичной виндовой.
2) копирование - частный случай. мне надо было не для этого.
← →
Anatoly Podgoretsky (2003-04-14 12:33) [6]Есть маленькая разница, виндоуская работает, а твоя нет.
Вот совсем быстрая неработающая процедура
procedure CopyFu(Src,Dst: string);
begin
end;
← →
LEON (2003-04-14 22:29) [7]а в досе то нет?
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.06.19;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c