Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Система";
Текущий архив: 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.009 c
3-60013
АТ
2003-05-27 04:24
2003.06.19
Вопрос по транзакции в InterBase


3-60054
Term
2003-05-28 10:21
2003.06.19
Переиндексация


1-60213
Voyager
2003-06-04 19:37
2003.06.19
Как зная id потока получить его handle?


14-60403
JibSkeart
2003-06-01 13:43
2003.06.19
Видели ?


6-60285
ZayaC
2003-04-10 21:27
2003.06.19
Теоретический вопрос по чату





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский