Файл – именованная область памяти на внешнем носителе, предназначенная для хранения данных.
Упорядоченная совокупность произвольного числа однотипных компонент с последовательным методом доступа.
В отличии от массивов в файлах место каждого элемента не определено индексом, число элем. не задано, каждая компонента файла становится доступной, только после перебора всех предшествующих компонент.
Для доступа к записи файла используется текущий указатель, который в начале работы с файлом должен указывать на начальную запись, имеющую № 0. При выполнении операции текущий указатель автоматически перемещается.
Типы файлов:
1.Типизированные – записи которых имеют жёсткую структуру, типа record.
2.Текстовые – состоящие из символов и строковых структур.
3.Нетипизированные – файлы без какой-либо структуры.
Процедуры и ф-ии для всех типов ф-ов.
1.Assign(имя файла,‘имя системного ф.’) устанавливает связь между переменной файлового типа в ПАСКАЛЬ-программе и конкретными физическими файлами на магнитных носителях.
Assign(f, ‘A:\file.dat’);
2.Reset(имя файла) – подготовка к чтению;
Rewrite(имя файла) – подготовка к записи;
3.Read(F) – чтение из файла F
Write(F) – запись в файл F
4.Eof(F) – достигнут ли конец файла при записи?
5.Uose(F) – закрытие файла.
6.Erase(F) – стирание файла.
7.Rename(F, ‘STR’) – переименование.
8.Truncate(F) – усечение файла по текущему положению указателя
9.Файлы параметров процедур могут передаваться по ссылке.
(а)Не типизированными файлами является последовательность байтов без какой-либо структуры. В них можно на примитивном уровне очень быстро и эффективно реализовать доступ к блокам, содержащим требуемое число байтов.
Особенности исполнения стандартных процедур и функций.
Rewrite(F, lblock); Reset(F, lnlock);
Lblock – размер передаваемого блока в байтах (по умолч. 128 байт).
Filesize, Filepos, Seek – используют компоненты длиной lblock каждый.
Blockread(F, buf, nmax, n) – из F в buf считывается максисум nmax блоков; n – фактически прочитано.