Шаг 55.
Файлы. Ввод и вывод информации

    Здесь мы познакомимся с процедурамии, организующими ввод/вывод информации.

Процедура Write
Процедура Read


    1. Запись в файл. Под записью в файл понимается вывод результатов работы программы из оперативной памяти компьютера в файл. Запись данных в файл выполняется процедурой Write. Ее общий вид:


     Write(<имя файловой переменной>,<список переменных>);
Список переменных - имена тех переменных, разделённых запятыми, значения которых помещаются в файл.


    Замечание. Если в процедуре Write "убрать" первый параметр, то получим оператор вывода Write(<список переменных>), с помощью которого данные выводятся на экран дисплея.

    Проиллюстрируем использование этой процедуры на конкретном примере. Составим программу, размещающую в файл 10 целых чисел. Текст программы может быть следующим:

Program Pr1;
Var
  k: File of Integer;
  i,a:Integer;
Begin
{Связываем файловую переменную k с файлом DAN.DAT.}
 Assign(k,'DAN.DAT');   
 Rewrite(k); {Пересоздаем файл для записи.}
 For i:=1 To 10 Do
     Begin
        Writeln(i,'- й элемент: ');
         Readln(a); {Вводим число.}
         Write(k,a); {Записываем текущее число в файл.}
      End; 
  Close(k); {Закрываем файл.}
End.
Текст этой программы можно взять здесь.

    В этой программе процедура Assign связывает переменную k с файлом DAN.DAT, который пересоздаётся при выполнении процедуры Rewrite. В цикле осуществляется ввод значений в переменную a, значение которой затем помещается в файл с помощью процедуры Write.

   

    2. Чтение из файла. Под чтением из файла понимается пересылка данных из файла в оперативную память. Чтение данных из файла выполняется процедурой Read, общий вид которой следующий:


     Read (<имя файловой переменной>, <список переменных>);
Список переменных - это имена тех переменных, разделённых запятыми, в которые помещаются элементы файла. Типы переменных и элементов файла должны совпадать.


    Замечание. Если в процедуре Read "убрать" первый параметр, то получим оператор ввода Read(<список переменных>), с помощью которого данные вводятся с клавиатуры.

    Проиллюстрируем использование этой процедуры на конкретном примере. Составим программу, вывода из файла, содержащего целые числа, первых десяти чисел. Приведем текст программы:

Program Pr2;
Var
  k: File of Integer;
  i,a:Integer;
Begin
  {Связываем файловую переменную k с файлом DAN.DAT.}
  Assign(k,'DAN.DAT');   
  Reset(k); {Открываем файл для чтения.}
  For i:=1 To 10 Do
     Begin
        Read(k,a);  {Считываем текущее число из файла.}
        Writeln(i,'- й элемент: ',a); {Выводим его на экран.}
      End;
   Close(k);   {Закрываем файл.}
End.
Текст этой программы можно взять здесь.

    Однако у внимательного читателя, наверное, возникли вопросы подобного типа: откуда компьютер знает, какое значение из файла нужно прочитать в данный момент; "знает" ли компьютер о том, есть ли еще элементы в файле и т.п. Ответы на эти и другие вопросы (хотя бы частично) можно получить, изучив материал следующего шага.

    На следующем шаге мы разберем, что такое "файловый указатель".


Процедура Write Процедура Read

Предыдущий шаг Содержание Следующий шаг