HOME ПРИМЕРЫ THANKS НОВИЧКАМ ДОКИ LINKS JavaScript Mail | |||
| |||
|
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 |