Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекції на ОП та алг. мови.doc
Скачиваний:
13
Добавлен:
03.11.2018
Размер:
785.92 Кб
Скачать

Установчі і завершальні операції

У цю групу входять чотири операції, реалізовані у виді стандартних процедур з наступними іменами:

  • Assign

  • Reset

  • Rewrite

  • Flush

  • Close

Розглянемо ці операції.

а) Процедура Assign призначена для встановлення зв'язку між конкретним фізичним файлом на магнітному носії і змінної файлового типу, що буде представником цього файлу в програмі.

Ця процедура має два параметри. Перший параметр — ім'я файлової змінної, другий параметр - рядок, що утворить літеральне ім'я файлу. Ім'я файлу будується за правилами, прийнятим в операційній системі MS-DOS для іменування файлів, і може містити в собі позначення дисковода, ланцюжок каталогів, що приводить до потрібного файлу, власне ім'я файлу.

Приклад:

Assign(F,'d:\mydir\myfile.dta') ;

Після виконання даного виклику файлова змінна F буде зв'язана з дисковим файлом myfile.dta, розташованим у каталозі mydir з кореневого каталогу диска d.

Другий параметр процедури Assign може бути також рядком, що містить умовну позначку "псевдофайлів" MS-DOS, тобто файлів, зв'язаних із конкретним фізичним пристроєм. Допускаються наступні імена, які в основному співпадають з прийнятими в MS-DOS позначеннями:

• con - консоль, тобто для випадку виведення інформація міститься на екрані дисплея, а у випадку введення інформація зчитується з клавіатури;

• lpti, LPT2, LPT3 - друкувальні пристрої (допускається одночасно до трьох пристроїв). Ці пристрої призначені тільки для виведення інформації;

• prn - синонім LPTI;

• СОМ1, COM2 - послідовні комунікаційні порти. Зміст цих псевдофайлів визначається конкретними пристроями, підключеними до цих портів;

• AUX - синонім СОМ1;

• nul - фіктивний (неіснуючий) пристрій. Може використовуватися для виведення інформації "у нікуди", коли в програмі або потрібно вказати ім'я вихідного файлу, або інформація, записувана в нього, не потрібна.

б) Процедури Reset і Rewrite мають один параметр - файлову змінну і призначені для відкриття файлів. (При цьому файлова змінна, що вказується як параметр, повинна бути вже зв'язана з конкретним дисковим файлом за допомогою процедури Assign). Під відкриттям у даному випадку розуміється пошук файлу на зовнішньому носії, утворення спеціальних системних буферів для обмінів з ним і установка поточного покажчика файлу на його початок (тобто на нульовий елемент).

Різниця між цими двома процедурами полягає в початкових діях з файлом. Процедура Reset припускає, що дисковий файл, що відкривається, вже існує, у противному випадку виникає помилка. Процедура Rewrite допускає, що файл, що відкривається, може ще не існувати; у цьому випадку вона створює заданий файл. Якщо ж файл існує, то Rewrite ОЧИЩАЄ його. Повторимо, що в обох випадках поточний покажчик файлу встановлюється на його нульовий елемент.

в) Процедура Flush (параметр - файлова змінна) використовується для завершення обмінів з файлом без його закриття. Обміни з файлами завжди реалізуються через деякий буфер в оперативній пам'яті, тому в процесі запису на файл останні записувані елементи можуть ще знаходитися ("застрягти") у буфері. Процедура Flush викликає примусове скидання цих елементів у файл. Ця процедура має сенс у тому випадку, якщо з файлом проводилися операції запису, і використовується рідко, тому що процедура Close робить такі ж дії.

г) Процедура close завершує дії з файлом, що вказується в якості її єдиного параметра. При цьому ліквідуються внутрішні буфери, утворені при відкритті цього файлу. Після цього файлову змінну можна зв'язати за допомогою процедури Assign c яким-небудь іншим дисковим файлом. Помітимо, що при закінченні роботи всієї програми відбувається автоматичне закриття усіх файлів, відкритих у програмі. Однак гарним правилом є явне закриття файлів процедурою Close після закінчення роботи з ними.