лк6_2_Файлы в Паскале.ppt
- Количество слайдов: 18
Файлы в Паскале лекция № 5
Понятие файла Файл Операционная система Область памяти внешнего запоминающего устройства (обычно диска), имеющая имя. Алгоритмический язык Тип данных, используемый при работе с внешними запоминающими устройствами
Файлы в программировании • Файл - это последовательность однотипных компонент. Число компонент файла не ограничено. После последней компоненты файла стоит специальный код, называемый признаком конца файла; этот код обычно ставится автоматически, без участия программиста. • В классическом понимании файл рассматривается как абстрактное обобщение данных на устройстве с последовательным доступом, типичным представителем которого является магнитная лента. В библиотеках современных языков программирования, конечно, имеются средства и для работы с файлами прямого доступа.
Классический подход к файлам в программировании 1 2 N-1 … головка считывания/записи Буфер (карман) – память в ОЗУ N Внешнее запоминающее устройство с последовательны м доступом. Движение возможно только от начала, последовательно от компоненты к компоненте. Для достижения N-й компоненты необходимо пройти (N-1) предыдущих компонент.
Программное и физическое имена файлов • Программное имя - это имя переменной файлового типа. • Физическое имя - это имя устройства или файла на диске. • Существуют специальные операторы, устанавливающие соответствие (связывающие) программное и физическое имена файла.
Текстовые и двоичные файлы • Текстовые файлы хранят информацию во внешнем представлении. Они имеют два основных признака: во-первых, их компонентами являются строки символов; во-вторых, эта символьная информация интерпретируется в соответствии с типом вводимых или выводимых переменных. Эти файлы являются обобщением данных на устройстве CON (т. е. вводимых с клавиатуры или выводимых на экран компьютера). Умение работать с текстовыми файлами необходимо даже начинающим программистам, так как на устройстве CON данные существуют малый промежуток времени, а обычно имеется потребность в их длительном хранении.
Текстовые и двоичные файлы • Двоичный файл - это последовательность байтов; обмен информации между двоичным файлом и переменными программы происходит без преобразования. В Турбо Паскале рассматривается два вида двоичных файлов: типизированные и нетипизированные. В случае типизированных файлов байты файла разбиваются на ячейки в соответствии с типом компонент файла; например, для файла с базовым типом integer каждая пара байтов (для 32 -разрядных компьютеров – четверка) рассматривается как целое значение; типизированные файлы хранят данные во внутреннем представлении. Для нетипизированных файлов представление информации безразлично, файл рассматривается как последовательность нулей и единиц.
Файлы в Объектном Паскале Файлы в классическом подходе Турбо Паскаля, когда используется переменная типа файл Текстовые Типизированные Использование цифрового идентификатора (Handle)файла Windows Процедурный подход Нетипизированные двоичные Handle допускает работу только с двоичными файлами! Объектноориентированн ый подход
Классический подход к работе с файлами – основные шаги 1. Объявление файловой переменной – программного имени файла – различно для разных видов файлов • Текстовый файл: Var Имя. Файла: textfile; {ТП: text } • Типизированный файл: Var Имя. Файла: file of Базовый. Тип; • Нетипизированный файл: Var Имя. Файла: file;
Классический подход к работе с файлами – основные шаги 2. Связывание программного и физического имен файлов Assign. File (Программное. Имя, Физическое. Имя); {в ТП Assign} Программное. Имя – переменная, описанная как файл; Физическое. Имя – имя файла на диске (полное) или имя устройства. После оператора Assign. File в программе используется только программное имя файла. Пример: Var f: text; … Begin … Assign( f, ‘d: studenta. txt‘ ); {Далее используется только f}
Классический подход к работе с файлами – основные шаги 3. Открытие файла (для чтения или для записи) Reset (Имя. Файла); {открытие файла для чтения} Rewrite (Имя. Файла); {открытие файла для записи} Пример: Var f: text; … Begin … Assign( f, ‘d: studenta. txt‘ ); Reset(f); {или для записи Rewrite(f)}…
Классический подход к работе с файлами – основные шаги 4. Чтение из файла или запись в файл – различно для разных видов файлов Пока для примера рассмотрим чтение/запись для текстовых файлов: Read (Имя. Файла, Список. Ввода); Write (Имя. Файла, Список. Вывода); Пример: Read(n, a, b); Write(‘s=‘, s); {полная аналогия консольному вводу-выводу} Также можно использовать Readln и Writeln.
Классический подход к работе с файлами – основные шаги Замечание. При работе с файлами используется функция EOF(Имя. Файла). EOF возвращает значение True, если считан признак конца файла, и значение False в противном случае. EOF – сокр. от End Of File
Классический подход к работе с файлами – основные шаги • Закрытие файла Close. File(Имя. Файла); {для ТП - Close } Закрытие файла предполагает следующие действия: 1. Сохранение изменений в файле. 2. Перерегистрация файла в каталоге. 3. Разрушение связи между программным и физическим именами файлов. ё
Открытие файла – это подготовка файла к использованию Для чтения Для записи Для дополнения Reset(f) Rewrite(f) Append(f) – только для текстовых файлов
Открытие файла для чтения 1. Поиск файла с заданным физическим именем; если не найден, то сообщение об ошибке. 2. Указатель файла устанавливается на первую компоненту. 3. Компонента, на которой стоит указатель, считывается в буфер. 4. Если считан признак конца файла, то функция EOF устанавливается в значение True, иначе – в значение False.
Открытие файла для записи 1. Поиск файла с заданным физическим именем; если файл не найден, то создается новый файл 2. Содержимое файла очищается. 3. Указатель файла устанавливается на конец файла (последней компоненты). 4. Функция EOF устанавливается в значение True.
Открытие файла для дополнения 1. Поиск файла с заданным физическим именем; если не найден, то сообщение об ошибке. 2. Указатель файла устанавливается на конец файла (последней компоненты). 3. Функция EOF устанавливается в значение True.