Курсовые работы, лабораторные и дипломы по информатике.

>> Справочник по функциям Turbo Pascal 7.0.

Наши спонсоры:

Негде восполнить адреналин? играть гейминатор: волна острых эмоций запомнится надолго!

Процедура BlockRead.

  • Объявление:

    Procedure BlockRead(Var F : File; Var Buf; Count : Word [; Var Result : Word]);

    Где:
    F - нетипизированная файловая переменная
    Buf - любая переменная
    Count - выражение типа Word
    Result - переменная типа Word

  • Описание:

    Считывает одну или большее количество записей из файла в переменную.

  • Замечания:

    Процедура BlockRead считывает Count или меньшее количество записей из файла F в блок памяти, начинающийся с первого байта, занятого переменной Buf. Реальное количество прочитанных записей (меньшее или равное Count) возвращается в необязательном параметре Result. Если параметр Result не определен, то в случае, когда количество прочитанных записей не равно параметру Count, происходит ошибка ввода/вывода.

    Весь считанный блок занимает максимум Count * RecSize байт, где RecSize - размер записи, определяемый при открытии файла (или 128 байт, если размер записи не был определен). Если Count * RecSize больше, чем 64Кб, то происходит ошибка.

    Параметр Result является необязательным. Если весь запрошенный блок был считан, то Result будет равно Count. Иначе, в случае, если Result меньше, чем Count, то конец файла был достигнут прежде, чем было завершено считывание блока. В таком случае, если параметр RecSize был больше 1, то Result вернет количество целиком считанных записей.

    Указатель текущей позиции файла перемещается на количество записей, равное значению параметра Result.

    В режиме {I-} функция IOResult вернет нуль, если операция была успешной, иначе, она вернет отличный от нуля код ошибки.

  • Ограничения:

    Файл должен быть открыт.

  • Пример:

    {Пример программы для процедур BlockRead }
    Uses WinCrt;
    Program CopyFile;
    { Простая программа быстрого копирования файлов БЕЗ проверки ошибок }
    Var FromF, ToF : File;
    NumRead, NumWritten : Word;
    Buf : Array [1..2048] Of Char;
    Begin
    { Открываем входной файл }
    Assign(FromF, ParamStr(1));
    Reset(FromF, 1); { Размер буфера записи = 1 байт }
    { Открываем выходной файл }
    Assign(ToF, ParamStr(2));
    ReWrite(ToF, 1); { Размер буфера записи = 1 байт }
    WriteLn('Копирую ', FileSize(FromF), ' байт...');
    Repeat
    BlockRead(FromF, Buf, SizeOf(Buf), NumRead);
    BlockWrite(ToF, Buf, NumRead, NumWritten);
    Until (NumRead = 0) Or (NumWritten <> NumRead);
    Close(FromF);
    Close(ToF);
    End.



Вернуться к оглавлению справочника