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

Вниз

Чтение двоичных файлов   Найти похожие ветки 

 
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;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.015 c
1-60230
Сергей Кошелев
2003-06-05 16:09
2003.06.19
Графика


14-60347
Andrey V.
2003-06-02 10:23
2003.06.19
Слепить три файла в один.


1-60256
agentru
2003-06-05 18:45
2003.06.19
Как сделать в Винде папку невидимой (програмно)?


8-60274
Kair
2003-03-02 21:26
2003.06.19
Буферизация


14-60385
comintegrator
2003-06-02 23:14
2003.06.19
ШИФРОВАНИЕ