Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
3-60038
Анна
2003-05-27 20:48
2003.06.19
Connection lost to database


14-60409
kaif
2003-06-02 19:18
2003.06.19
Можно ли примирить эволюционизм и креационизм?


3-60059
Vitas2
2003-05-28 14:08
2003.06.19
SQL2


4-60455
tytus
2003-04-19 17:45
2003.06.19
Button


3-60058
BigVova
2003-05-27 10:55
2003.06.19
права юзеру через роль не получается




   Наверх