Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Вниз

Ошибка при обращении к процедуре BlockRead   Найти похожие ветки 

 
Tolik   (2004-05-22 02:23) [0]

Вот небольшая програмка, копирующая файл Test.dat в Test1.dat:

var
 Buf:array of Word;
 F,F1:File;

begin

AssignFile(F,"c:\Test.dat");

Reset(F,1);

AssignFile(F1,"c:\Test1.dat");

Rewrite(F1,1);

SetLength(Buf,FileSize(F));

BlockRead(F,Buf,FileSize(F); //тут возникает ошибка ElnOutError "I/O 87" ! А почему?
BlockWrite(F1,Buf,FileSize(F));

CloseFile(F);
CloseFile(F1);

end;

Если использовать статический массив Buf, то никаких ошибок не возникает, но с динамическим
какие-то проблемы. Насколько я знаю в Delphi4 нельзя использовать динамические массивы в
качестве буфера из-за недоработки процедур BlockRead/BlockWrite, но в Delphi5 и 6 эта
недоработка была исправлена. У меня установлена Delphi6. Из-за чего возникает эта ошибка?
Еще. В Delphi help BlockRead описывается так:

procedure BlockRead(var F: File; var Buf; Count: Integer [; var AmtTransferred: Integer]);

однако у меня в редакторе кода она (при подсказке синтаксиса) имеет вид:

var F: File; var Buf; Count: Integer [; var Result: Integer].


 
Johnmen ©   (2004-05-22 02:30) [1]

Не мучай себя

var
Buf:array of byte;


 
Германн ©   (2004-05-22 03:14) [2]

Имхо, насколько помню, второй параметр процедуры BlockRead должен являться указателем на первый байт той области, куда будут записаны данные.
Имхо следует писАть BlockRead(F,Buf[0],FileSize(F);


 
Anatoly Podgoretsky ©   (2004-05-22 12:32) [3]

Не стоит загонять столько данных в переменную у которой размер всего 4 байта. ShowMessage(IntToStr(SizeOf(buf))



Страницы: 1 вся ветка

Форум: "Основная";
Текущий архив: 2004.06.06;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.44 MB
Время: 0.033 c
3-1084520460
-=VaaL=-
2004-05-14 11:41
2004.06.06
Копирование BLOBa из одной таблицы в другую


3-1084428750
goozman
2004-05-13 10:12
2004.06.06
SQL запрос


1-1085141441
DimonNew
2004-05-21 16:10
2004.06.06
TreeNode


4-1082826531
DoG
2004-04-24 21:08
2004.06.06
TerminatedProcess


14-1085138662
Yegorchic
2004-05-21 15:24
2004.06.06
Рассылка





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский