Иллюстрированный самоучитель по Turbo Pascal

Доступ к файлам

Под файлом понимается либо именованная область внешней памяти ПК (жесткого диска, гибкой дискеты, электронного "виртуального" диска), либо логическое устройство – потенциальный источник или приемник информации.

Любой файл имеет три характерные особенности. Во-первых, у него есть имя, что лает возможность программе работать одновременно с несколькими файлами. Во-вторых, он содержит компоненты одного типа. Типом компонентов может быть любой тип Турбо Паскаля, кроме файлов. Иными словами, нельзя создать "файл файлов". В-третьих, длина вновь создаваемого файла никак не оговаривается при его объявлении и ограничивается только емкостью устройств внешней памяти.

Файловый тип или переменную файлового типа можно задать одним из трех способов:

<имя> = FILE OF <тип>;
<имя> = TEXT;
<имя> = FILE;

Здесь:

  • <имя> – имя файлового типа (правильный идентификатор);
  • FILE, OF – зарезервированные слова (файл, из);
  • TEXT – имя стандартного типа текстовых файлов;
  • <тип> – любой тип Турбо Паскаля, кроме файлов.

Например:

type
product = record
name: String;
code: Word;
cost: comp
end;
textSO = file of String [80];
var
f1: file of char;
f2: text;
f3: file;
f4: text80;
f5: file of product;

В зависимости от способа объявления можно выделить три вида файлов:

  • типизированные файлы (задаются предложением FILE OF…);
  • текстовые файлы (определяются типом TEXT);
  • нетипизированные файлы (определяются типом FILE).

В наших примерах F1, F4 и F5 – типизированные файлы, F2 – текстовый файл, F3 – нетипизированный файл. Вид файла, вообще говоря, определяет способ хранения информации в файле. Однако в Турбо Паскале нет средств контроля вида ранее созданных файлов. При объявлении уже существующих файлов программист должен сам следить за соответствием вида объявления характеру файла.


Любой программе доступны два предварительно объявленных файла со стандартными файловыми переменными: INPUT – для чтения данных с клавиатуры и OUTPUT – для вывода на экран. Стандартный Паскаль требует обязательного упоминания этих файлов в заголовке программы, например, так:

PROGRAM NameOfProgram(input,output);

В Турбо Паскале это необязательно, вот почему заголовок программы можно опускать.

Любые другие файлы, а также логические устройства становятся доступны программе только после выполнения особой процедуры открытия файла (логического устройства). Эта процедура заключается в связывании ранее объявленной файловой переменной с именем существующего или вновь создаваемого файла, а также в указании направления обмена информацией: чтение из файла или запись в него.

Файловая переменная связывается с именем файла в результате обращения к стандартной процедуре ASSIGN:

ASSIGN (<ф.п.>, <имя файла или л.у.>);.

Здесь:

  • <ф.п.> – файловая переменная (правильный идентификатор, объявленный в программе как переменная файлового типа);
  • <имя файла или л.у.> – текстовое выражение, содержащее имя файла или логическое устройство.

Если имя файла задается в виде пустой строки, например, ASSIGN(f, ' '), то в зависимости от направления обмена данными файловая переменная связывается со стандартным файлом INPUT или OUTPUT.

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