Конспект лекций по информатике для специальностей 2102, 2103 Автор доц., к т. н. Каширская Е. Н
Вид материала | Конспект |
Содержание11.4. Описание файлового типа 11.5. Файловая переменная |
- Конспект лекций бурлачков в. К., д э. н., проф. Москва, 1213.67kb.
- Конспект лекций по курсу "Начертательная геометрия и инженерная графика" Кемерово 2002, 786.75kb.
- Конспект лекций по дисциплине «Маркетинг», 487.79kb.
- Конспект лекций для студентов всех специальностей дневной и заочной формы обучения, 1439.07kb.
- Конспект лекций для студентов, магистров и аспирантов всех специальностей, 373.35kb.
- Конспект лекций для студентов по специальности i-25 01 08 «Бухгалтерский учет, анализ, 2183.7kb.
- Конспект лекций организация производства и маркетинг для студентов 3 курса специальностей, 2989.73kb.
- Конспект лекций по дисциплине «психология и педагогика» омск 2005, 2020.42kb.
- Конспект лекций по курсу «Организация производства», 2034.84kb.
- Конспект лекций по курсу «Организация производства», 2032.47kb.
11.4. Описание файлового типа
Файловый тип или переменную файлового типа можно задать одним из трёх символов:
имя = file of тип;
имя = text;
имя = file;
Пример: Var finp: text;
Fout: file of string;
const name = ‘c:\dir\subdir\out.txt;
…………………………
Во время выполнения программы данные файла поступают в память компьютера и преобразуются в тот тип данных, который оъявлен в программе.
Общий вид описания файлового типа:
Type имя = File of тип;
Число компонентов в определении файлового типа в отличие от массива не фиксируется. Тип компонентов файла может быть любым, кроме файлового.
Пример:
Type Number = file of integer; {файл целых чисел}
Symb = file of ‘A’..’Z’; {файл прописных латинских букв}
Стандартный тип Text определяет тип–файл, содержащий символы, объединённые в строки. Следует иметь в виду, что тип Text в Турбо-Паскале не эквивалентен типу file of char.
В Турбо-Паскале можно использовать файл без типа, при определении которого не указывается тип компонент. В этом случае работа с файлом осуществляется на физическом уровне, в соответствии с внутренним форматом его данных. При этом реальные компоненты файла могут иметь и различные типы.
Пример: Type untyp = file;
Итак, в Паскале файловый тип описывается следующим образом:
type T = TValue;{ тип компоненты файла }
< имя файлового типа > = file of T;
Как обычно, файловый тип может быть введен в употребление в разделе типов, как было описано выше, либо непосредственно задан при описании переменных, например: var myfile: file of T;
Файлы, имена которых включаются в список заголовка программы, называются внешними файлами, они существуют вне программы. Если же имена файлов не внесены в список заголовка программы, то такие файлы существуют только во время выполнения программы и называются внутренними. Внутренние файлы носят в основном вспомогательный характер. Стандартный ввод осуществляется из файла input, а вывод в файл output.
11.5. Файловая переменная
Каждому файлу ставится в соответствие уникальная файловая переменная. Кроме того, обычными программными средствами нельзя создать программы, позволяющие взаимодействовать с устройствами ввода-вывода, кроме терминалов пользователя. Своеобразным «окном» между программами и внешними устройствами является файловая переменная. Поэтому в каждой программе, где предусматривается взаимодействие с устройствами ввода-вывода, организуется определённым образом логическая связь устройства ввода-вывода с файловой переменной.
Пример:
Type ZAP = Record
FIO: array [1..10] of char;
God: Integer
end; { of Record }
F = File of ZAP;
Тогда любая переменная типа F – это последовательный файл, состоящий из записей. Каждая запись имеет 2 поля: FIO (фамилия) и God (год рождения).
Переменные файлового типа, как и обычные переменные, описываются в разделе переменных: Var C: F;
С переменной С автоматически связана некоторая буферная переменная, относящаяся к типу компонентов файла и представляющая собой своеобразное «окно», через которое можно просматривать или записывать очередные компоненты. В любой момент доступен только один компонент файла – тот, что виден через буферную переменную.
С каждой файловой переменной связано понятие текущего указателя, это некоторая скрытая переменная, означающая (или указывающая) конкретный элемент файловой структуры. Все элементы файла считаются пронумерованными, начиная с нулевого.
Описание файла в разделе описания переменных:
Var Myfile: File of Integer;
Это означает, что в прграмме под файловым именем Myfile понимается неопределённое количество целых чисел, которые в виде физического файла могут располагаться на некотором внешнем уровне.
С каждым элементом последовательного файла тоже связано понятие текущего указателя. Поскольку все действия с данным файлом связаны с его элементами, необходимо знать, какой именно элемент файла подвергается обработке. Для этого используется текущий указатель.
Если программа взаимодействует с внешними файлами (хранимыми на диске), то файлы должны быть описаны в программе либо явно в разделе переменных Var, либо с использованием раздела типов Type.
Var имя файла: File of базовый тип
Пример: Var FT: File of char; (* файл символьных данных *)
Finp: File of real; (* файл действительных данных *)
М: File of integer; (* файл целых данных * )
Файлы символьных данных называются текстовыми файлами.
Определение данных с использованием раздела описания типов Type делает программу более универсальной и упрощает отладку программы.
Type имя типа = File of базовый тип;
Var имя переменной: имя типа;
Пример: Type T = File of Char;
Var FT: T;
Здесь Т – введённое нами имя типа.
Пример описания файловых типов и переменных:
Type SS = file of Char;
Person = record
name: string [20];
adress: string [25];
sex: ( man, woman );
day: 1..31;
month: 1..12;
year: 1900..2000
end;
Var F1, F2: SS;
Table: file of string [50];
Base: file of person;
Data: file of integer;
Файловые переменные имеют специфическое применение. Над ними нельзя выполнять никакие операции (присваивать значение, сравнивать и т.д.). Их можно использовать лишь для выполнения операций с файлами (чтения, записи, удаления файла и т.д.). Кроме того, через файловую переменную можно получить информацию о конкретном файле (тип, параметры, имя файла и т.д.).