Иллюстрированный самоучитель по Delphi 7 для профессионалов

Операции ввода/вывода

Чтение данных из типизированных и текстовых файлов выполняют процедуры Read и Readln.

Процедура Read имеет различное объявление для текстовых и других типизированных файлов:

procedure Read([var F: Text;] V1 [, V2,…,Vn]);

Для текстовых файлов;

procedure Read(F, VI [, V2,…,Vn]);

Для других типизированных файлов.

При одном вызове процедуры можно читать данные в произвольное число переменных. Естественно, что тип переменных должен совпадать с типом файла. При чтении в очередную переменную читается ровно столько байтов из файла, сколько занимает тип данных. В следующую переменную читается столько же байтов, расположенных следом. После выполнения процедуры текущая позиция устанавливается на первом непрочитанном байте. Аналогично работают несколько процедур Read для одной переменной, выполненных подряд.

Процедура:

procedure Readln([ var F: Text; ] VI [, V2,…,Vn ]);

Считывает одну строку текстового файла и устанавливает текущую позицию на следующей строке. Если использовать процедуру без переменных vi..vn, то она просто передвигает текущую позицию на очередную строку файла.

Процедуры для записи в файл write и writeln описаны аналогично:

procedure Write([var F: Text; ] PI [, P2,…, Pn]);
procedure Writein([ var F: Text; ] PI [, P2,…,Pn ]);

Параметры P1, P2,…, Pn могут быть одним из целых или вещественных типов, одним из строковых типов или логическим типом. Но у них есть возможность дополнительного форматирования при выводе. Каждый параметр записи может иметь форму:

Рn [: MinWidth [: DecPlaces ] ]

Здесь:

  • Рn – выводимая переменная или выражение;
  • MinWidth – минимальная ширина поля в символах, которая должна быть больше 0;
  • DecPlaces – содержит количество десятичных символов после запятой при отображении вещественных чисел с фиксированной точкой.

Обратите внимание, что для текстовых файлов в функциях Read и write файловая переменная F может быть опущена. В этом случае чтение и запись осуществляются в стандартные файлы ввода/вывода. Когда программа компилируется как консольное приложение (флаг {$APPTYPE CONSOLE}), Delphi автоматически связывает входной и выходной файлы с окном консоли.

Для контроля за текущей позицией в файле применяются две основные функции. Функция EOF(F) возвращает значение True, если достигнут конец файла. Функция EOLN(F) аналогично сигнализирует о достижении конца строки. Естественно, в качестве параметра в функции необходимо передавать файловую переменную.

Процедура:

procedure Seek(var F; N: Longint);

Обеспечивает смещение текущей позиции на N элементов. Размер одного элемента в байтах зависит от типа данных файла (от типизированной переменной).

Если Вы заметили ошибку, выделите, пожалуйста, необходимый текст и нажмите CTRL + Enter, чтобы сообщить об этом редактору.