Read, процедура

Синтаксис


procedure Read(var F:  File; var Переменная;   ...);
procedure Read(var F: TextFile; var Переменная;   ...);
procedure Read(var Переменная;   ...);

Описание

Процедура Read читает данные из двоичного или текстового файла. Она не является настоящей процедурой.
Для чтения типизированного двоичного файла Переменная должна быть того же типа, что и базовый тип файла. Delphi читает одну запись из файла в Переменную и перемещает позицию файла, готовясь к чтению следующей записи. Если файл нетипизированный, Delphi читает столько байт, сколько определено размером записи при открытии файла процедурой Reset. Вы можете перечислить более одной переменной в аргументах Read, и в этом случае Read читает несколько записей и присваивает значение каждой из них отдельной переменной.
При чтении текстового файла Read выполняет форматированное чтение. Delphi читает символы из текстового файла и интерпретирует их в соответствии с типом каждой переменной. При чтении числовых значений Read пропускает пустые символы пробелы, табуляции и переводы строк), читает число и останавливает чтение при получении следующего пустого символа.
При чтении строк и символов Read не пропускает пустых символов. Если Переменная является длинной строкой, Read читает в переменную целую строку, но без символов конца строки. Если Переменная - короткая строка, Read останавливается в конце строки или в соответствии с размером строки, смотря что произойдет раньше.

Ошибки

  • Если файлу не назначено имя процедурой AssignFile или Assign, Read генерирует ошибку ввода/вывода 102.
  • Если файл не открыт для чтения, Read выдает ошибку ввода/вывода 103.
  • Если входные данные сформатированы неверно (например, попытка прочитать 3.14 в целую переменную), Read выдает ошибку ввода/вывода 106.
  • Если в процедуре Read произошел сбой по другой причине (например, ошибка сети), Read выдает в качестве ошибки ввода/вывода код ошибки Windows.
  • Если входное значение находится вне диапазона типа (предположим, 257 при чтении Byte), Read преобразует значение к корректному типу, не вызывая исключительной ситуации, или выдает ошибку времени выполнения.

Советы и приемы

  • Delphi не буферизует ввод из двоичного файла; для чтения нескольких записей за один раз можно использовать процедуру BlockRead.
  • Чтение за концом двоичного файла вызывает ошибку ввода/выводе 100. В текстовом файле Read всегда успешно выполняет чтение, извлекая символ #26. При чтении числа или строки в этом случае получается ноль или пустая строка.
  • Если первый аргумент - файл - не указан, Read читает данные из текстового файла Input.

Пример


var
  I: Integer;
  D1, D2: Double;
  S1, S2: string;
begin
  Read(S1);  // Читает строку целиком, но без символа конца строки. 
  Read(S2); // Всегда читает символ конца строки.
  Read(I); // Пропускает конец строки и пустые символы, чтобы
               // прочитать число,
  Read(D1,D2); // Пробелы также служат для ограничения и разделения 
                      // числовых значений.

Смотрите также

Процедуры BlockRead, ReadLn, Write, функция lOResult.
    Учебник по языку Pascal          Лабораторные работы по программированию          Справочник




Нет комментариев.



Оставить комментарий:
Ваше Имя:
Email:
Антибот: *  
Ваш комментарий: