Физическим файлом называется единая именованная область данных на диске. Физический файл определяется строкой с его именем и путем к нему. Например:
c:\autoexec.bat - файл с именем "autoexec" и расширением "bat" находится в корневом каталоге диска "c:".
d:\work\doc\mywork.doc - файл с именем "mywork" и расширением "doc" находится в подкаталоге "doc" каталога "work" на диске "d:".
С точки зрения программирования все файлы можно разделить на две группы:
· исполняемые программы;
· файлы данных, которые этими программами используются.
Логический файл в Паскале описывается как переменная одного из файловых типов.
Мы связываем логический файл с физическим файлом на диске и через логический получаем доступ к физическому. В Паскале существует три типа файловых переменных:
текстовые файлы (тип Text);
компонентные или типизированные файлы (тип File of...);
бестиповые или нетипизиованные файлы (тип File).
Файлом могут быть результаты вычислений и сама программа. Файлы по методу доступа к их элементам делятся на:
· файлы последовательного доступа;
· файлы прямого доступа.
В стандарте языка Паскаль принят последовательныйдоступ. Здесь каждый элемент доступен только после просмотра всех предыдущих.
Турбо Паскаль позволяет работать и с файлами прямого доступа, где есть возможность обращаться к каждому элементу по его порядковому номеру в файле. По отношению к программе файлы могут быть:
· внешними;
· внутренними.
Внутренние - это такие, которые создаются, используются и существуют только во время работы данной программы, например, результаты расчёта на экране. С окончанием работы сеанса они пропадают.
Внешние - это такие, которые существуют вне программы и сохраняются на внешнем носителе (диске).
Здесь основное внимание будет уделено работе с внешними файлами.
Текстовый файл, с которым мы работаем в DOS-среде, состоит из последовательности ASCII-кодов, среди которых могут быть и управляющие.
Байты текстового файла организуются по строкам. Информацию любого типа (числовую, символьную, строковую) текстовый файл хранит в виде символов, ее изображающих.
Самый привычный нам текстовый файл - это программа на Паскале. ASCII-код, это текстовая кодировка, использующаяся операционной системой DOS.
Управляющие символы не выводятся, а служат для выполнения определенных команд при выводе. Например, если вывести символ с кодом 7, мы услышим короткий звуковой сигнал.
Компонентный (типизированный) файл содержит любые структурированные данные в машинном представлении, то есть в том же виде, что и в оперативной памяти. Напрямую выводить такие данные на экран или пытаться прочитать их бессмысленно.
Все компоненты типизированного файла имеют один и тот же тип. Тип этот может быть любым, кроме файлового. Например, для многих задач удобно создавать файл записей.
Бестиповый (нетипизированный) файл содержит произвольные наборы байтов. Какой тип имеет каждая последовательность байтов и что она обозначает - остается на совести программиста.
Бестиповые файлы удобно использовать в задачах, где данных не так много, чтобы группировать их в несколько файлов по типам, но они настолько разноплановые, что в один компонентный их тоже не объединить. Кроме этого бестиповые файлы применяются там, где происходит работа с содержимым файла без распознавания информации, например, когда нужно побайтово скопировать один файл в другой. Можно сказать, что нетипизированный файл - это самый низкоуровневый канал ввода-вывода данных в Паскале.