|
Использование файловых переменных. Типы файлов
Зачастую современный программный код
Delphi для чтения данных из файла удивительно похож
на аналогичный, написанный, к примеру, в Turbo Pascal
4.0. Это возможно потому, что программисты Borland сохранили
неизменным "старый добрый" набор файловых
функций, работающих через файловые переменные.
При организации операций файлового
ввода/вывода в приложении большое значение имеет, какого
рода информация содержится в файле. Чаше всего это строки,
но встречаются двоичные данные или структурированная
информация, например массивы или записи.
Естественно, что сведения о типе хранящихся
в файле данных важно изначально задать. Для этого используются
специальные файловые переменные, определяющие тип файла.
Они делятся на нетипизированные и типизированные.
Перед началом работы с любым файлом
необходимо описать файловую переменную, соответствующую
типу данных этого файла. В дальнейшем эта переменная
используется при обращении к файлу.
В Delphi имеется возможность создавать
нетипизированные файлы. Для их обозначения используется
ключевое слово file:
var UntypedFile:
file;
Такие файловые переменные используются
для организации быстрого и эффективного ввода/вывода
безотносительно к типу данных. При этом подразумевается,
что данные читаются или записываются в виде двоичного
массива. Для этого применяются специальные процедуры
блочного чтения и записи (см. ниже).
Типизированные файлы обеспечивают ввод/вывод
с учетом конкретного типа данных. Для их объявления
используется ключевое слово file of,
к которому добавляется конкретный тип данных. Например,
для работы с файлом, содержащим набор байтов, файловая
переменная объявляется так:
var ByteFile: file
of byte;
При этом можно использовать любые типы
фиксированного размера, за исключением указателей. Разрешается
применять структурные типы, если их составные части
удовлетворяют названному выше ограничению. Например,
можно создать файловую переменную для записи:
type Country = record
Name:
String;
Capital:
String;
Population: Longlnt;
Square:
Longlnt;
end;
var CountryFile:
file of Country;
Для работы с текстовыми файлами используется
специальная файловая переменная TextFile
или Text:
var F: TextFile;
|