HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail


 
В этот день много лет назад...
23 ноября. В 1942 году (75 лет назад) - Завершается окружение 330-тысячной немецкой группировки под Сталинградом. Гитлер отдает приказ немецким армиям под Сталинградом любой ценой удерживать свои позиции.
 
 

Turbo Pascal Documentation

Процедура BlockRead


     Функция: Считывает одну или более записей в переменную.
     Описание: ВlосkRеаd(var f : файл; var буфф;  счетчик  :
word [; результат : word ])
     Примечания: Параметр f представляет собой файловую  пе-
ременную,  "буфф"  -  любая  переменная, "счетчик" выражение
длиной в слово и "результат" - это также переменая длиной  в
слово.
     Данная процедура считывает записи,  количество  которых
не превосходит числа, указанного в переменной "счетчик", на-
чиная с первого байта, занятого переменной "буфф".  Действи-
тельное  число  полных считанных записей (меньшее или равное
значению переменной "счетчик") возвращается в необязательном
параметре "результат". Если этот параметр не задан, то в том
случае, когда число прочитанных записей не  будет  совпадать
со  значением  переменной  "счетчик", произойдет ошибка вво-
да-вывода.
     Весь размер переданного блока не превышает  числа  бай-
тов,  определяемых  произведением значения переменной "счет-
чик" и длины записи,  указываемой  при  открытии  файла  (по
умолчанию  128).  Если это произведение превышает 65535 (64К
байта), то возникает ошибка.
     Параметр "результат" является необязательным. Он  рабо-
тает  следующим  образом. Если был передан весь блок, то при
возврате управления в параметре "результат" будет содержать-
ся то же значение, что и в переменной "счетчик". В противном
случае значение параметра "результат" будет меньше: до того,
как  успела завершиться передача, был обнаружен символ конца
файла. В этом случае, если  размер  записи  файла  превышает
единицу,  то в параметре "результат" возвращается число пол-
ных прочитанных записей. Таким образом,  возможная  неполная
последняя запись не учитывается в параметре "результат".
      В результате выполнения процедуры ВlоскRеаd текущая по-
зиция  в файле продвигается на число записей, заданных пере-
менной "результат".
     При использовании директивы компилятора  {I-}  функция
IОRеsult  будет  возвращать 0, если операция завершилась ус-
пешно и ненулевой код ошибки в противном случае.
     Ограничения: Файл должен быть открыт.
     Отличия: В версии 3.0 неполные  записи  считываются.  В
версиях 4.0 и 5.0 они отбрасываются.
     Прочее: См. также процедуру ВlосkWritе.
     Пример:

program CopyFile;
{ Простая программа быстрого копирования файлов без провер-
   ки на возникновение ошибок }
var
   FromF, ToF, : file;
   NumRead, NumWritten : word;
   buf : array[1..2048] of char;
  begin
    Assign(FromF, ParamSrt(1)); { открыть входной файл }
    Reset(FromF);               { размер записи - 1 }
    Assign(ToF, ParamStr(2));   { открыть выходной файл }
    Rewrite(ToF, 1);            { размер записи = 1 }
    Writeln('Копирование ',FileSize(FromF),' байтов...');
    repeat
      BlockRead(FromF, buf, SizeOf(buf), NumberRead);
      BlockWrite(ToF, buf, NumberRead, NumWritten);
    until (NumRead = 0) or (NumWitten <> NumRead);
     Close(FromF);
     Close(ToF);
  end.




HOME