Файлы
- именованная область внешней памяти ЭВМ, хранящая совокупность данных. Файл
Ф айл имеет имя (до 8 лат. букв, цифр или символов #, $, %, ^, &, (, ), `, ~, -, _ и после точки – расширение до 3 символов. Перед именем можно указать путь к файлу) Ф айл содержит компоненты одного типа Д лина создаваемого файла не оговаривается при его объявлении, а ограничивается только ёмкостью устройств внешней памяти ЭВМ Особенности файлов
Файл можно представить как потенциально бесконечный список значений одного типа. элемент1элемент2элемент3… В любой момент времени программе доступен только один элемент файла, на который ссылается текущий указатель. Текущий указатель
Ф айлы последовательного доступа (к элементам обеспечивается доступ в той же последовательности, в которой они записывались) Ф айлы прямого доступа (доступ к элементам осуществляется по адресу элемента) По способу доступа к элементам различают
Типы файлов (файловых переменных) Обмен данными с файлом осуществляется с помощью переменных файлового типа. Т екстовые Т ипизированные Н етипизированные
Формат описания файлов var : text ; {текстовый файл} var : file of < тип> ; { типизированный файл } var : file ; {нетипизированный файл}
Примеры var f1 : text; f 2 : file of integer; f3 : file;
Процедуры и функции для работы с файлами
1. Процедура, связывающая файловую переменную с конкретным файлом. assign ( f1,c:\tp\10b\file.dat ) ; Пример assign ( f, ) ;
2. Процедура, открывающая существующий файл для чтения. reset ( f ) ;
3. Процедура, создающая и открывающая новый файл для записи. (Если файл ранее содержал данные, то они уничтожаются). rewrite ( f ) ;
4. Процедура, открывающая существующий файл для добавления. (Только для текстовых файлов). append ( f ) ;
5. Процедура, закрывающая файл с сохранением в нем данных. close ( f ) ;
6. Процедура, переименовывающая неоткрытый файл. rename ( f, ) ;
7. Процедура, удаляющая неоткрытый файл. erase ( f ) ;
8. Функция, возвращающая True, если получен признак конца файла, иначе – False. eof ( f )
9. Функция, возвращающая 0, если открытый файл существует, иначе – др. целое число. (Работает с директивой отключения стандартной проверки {$I-}). ioresult
Могут содержать строки, символы и числа любого типа. Текстовые файлы Перед записью в файл внутреннее представление переменных преобразуется в последовательность символов, т. е. текст.
Процедуры и функции для работы с текстовыми файлами
1. Процедуры ввода значений переменных из файла. read (f,< список переменных >); readln (f,< список переменных >);
2. Процедуры вывода значений выражений в файл. write (f,< список выражений >); writeln (f,< список выражений >);
3. Функция, возвращающая True, если получен признак конца строки, иначе – False. eoln ( f ) ;
Позволяют организовать прямой доступ к компоненту по его порядковому номеру. Типизированные файлы Перед первым обращением к процедурам ввода-вывода указатель файла стоит в его начале и указывает на первый компонент с номером нуль.
Типизированные файлы также используют процедуры read (f,< список пер. >) и write (f,< список выр. >). Переменные и выражения в списках ввода-вывода должны иметь тот же тип, что и компоненты файла.
Процедуры и функции для работы с типизированными файлами
1. Процедура, смещающая указатель на компонент с номером N (выражение типа longint). seek ( f, N ) ;
2. Процедура, удаляющая часть файла с текущей позиции до его конца. truncate ( f ) ;
3. Функция, возвращающая количество компонентов файла (типа longint). filesize ( f ) ;
4. Функция, возвращающая номер текущего элемента (типа longint). filepos ( f ) ;
Позволяют организовать высокоскоростной обмен данными. Нетипизированные файлы Вместо процедур read и write используются процедуры blockread и blockwrite, позволяющие определять параметры буферов, использующихся при обмене данными.