русс | укр

Мови програмуванняВідео уроки php mysqlПаскальСіАсемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование


Linux Unix Алгоритмічні мови Архітектура мікроконтролерів Введення в розробку розподілених інформаційних систем Дискретна математика Інформаційне обслуговування користувачів Інформація та моделювання в управлінні виробництвом Комп'ютерна графіка Лекції


ПРЕДИКАТИ РОБОТИ З КАТАЛОГАМИ


Дата додавання: 2013-12-24; переглядів: 1313.


ЗАКРИТТЯ ФАЙЛУ

Після закінчення роботи з файлом файл обов’язково треба закрити. Запис значень змінних на диск проводиться через буфер (область оперативної пам’яті). Файлова система слідкує за заповненням буфера і автоматично, непомітно для користувача записує заповнений буфер на диск. Часто залишок даних не заповнює буфер і тому залишок виводиться тільки при закритті файлу.

При закритті файлу виконуються наступні дії:

1. Виводиться залишок буфера з даними в файл на диск.

2. Корегуються відомості про кількість байтів у файлі в каталогу.

3. Очищується область з символічним ім'ям файлу і розривається зв’язок між символічним ім’ям файлу і файлом на диску.

Закриття файлу виконується предикатом

closefile(Символічне ім'я).

Приклад: closefile (f)

Предикат Flush (Символічне ім'я)

Дозволяє вручну вивести незаповнений буфер в файл на диск.

Приклад: flush(f)

Предикат очищує буфери системи.

Предикати роботи з каталогами працюють з ім'ям файлу в операційній системі. Файли повинні бути закритими.

Предикат existfile (Ім'я файлу в ОС)

(і)

Перевіряє, чи існує файл на вказаному диску за вказаним шляхом. Предикат істинний, якщо файл знайдено. Предикат не знаходить каталоги. В рядку, що задає шлях „\” вказують двічі.

Приклад: existfile("d:\\program\\Prolog\\v\\h1.dat").

Предикат disk (Шлях)

Режими: (і) - робить диск та каталог поточними

(о) – повертає поточні диск і каталог

Приклад: disk(“d:\ \prolog”)

Предикат deletefile (Ім'я файлу в ОС)

Вилучити файл з вказаного диску за вказаним шляхом.

Приклад: deletefile(“a:G.dat”)

Предикат renamefile (Старе ім'я, Нове ім'я)

Перейменує файл на вказаному диску за вказаним шляхом. Предикат істинний, якщо новий файл не існує.

Приклад: renamefile (“g1.dat”,”g2.dat”)

Предикат searchfile (Список шляхів, Ім’я файлу, Змінна)

(і, і, o)

Предикат знаходить серед вказаного списку шляхів потрібне ім'я файлу і повертає ім’я разом зі шляхом. Список шляхів задають через „;”.

Приклад: do:-searchfile(“d:\\; c:\\”, “F.asc”, T), write(T).

Процедура do виводить ім’я файлу разом зі шляхом.

Предикат copyfile ( Ім’я файлу, Ім’я копії файлу)

(і,і)

Предикат копіює файл і надає копії вказане ім’я. Копія має такі атрибути як оригінал.

 

 

9.7. ПРЕДИКАТИ, ЩО ПРАЦЮЮТЬ З АТРИБУТАМИ ФАЙЛІВ

 

Фізичні файли на диску можуть мати атрибути: архівний, схований, системний. Такі атрибути визначають дії системи відносно файлу. Крім того, атрибути файлу визначають дозволений доступ до файлу користувача(access modes): „тільки для читання”, „для читання і запису”, „тільки для запису”. Для файлів, що використовують декілька користувачів(sharing modes), існують атрибути, які вказують чи може інший процес відкрити цей файл з певним атрибутом.

Предикат openfile (Символічне ім’я, І’мя файлу в ОС,

Режими доступу і розподілу для файлу,

Фізичні атрибути файлу,

Дії при відсутності або наявності файлу.

(і, і, і, і, і)

Відкриває файл для утворення з вказівкою атрибутів.

Режими доступу і розподілу для файлу – формується з об’єднання по одному атрибуту з груп fm_access_XX i fm_ sh_XXXX і, необов’язково з атрибутів fm_returnerr, fm_writethru.

Длярежиму доступуfm_access ХХ може бути:

Ø Ro відкрити тільки для читання;

Ø Wo відкрити тільки для запису;

Ø Rw відкрити для читання і запису.

Для режиму розподілу fm_ shXXXX може бути:

Ø fm_sh_denyrw відмова читати/писати;

Ø fm_sh_denywr відмова писати;

Ø fm_sh_denyrd відмова читати;

Ø fm_sh_denyno відмов нема.

Обробка помилок:

Ø fm_returnerr повертати помилку

Ø fm_writethru вивід на

Фізичні атрибути файлу:

Ø fa_normal на читання і запис нема обмежень;

Ø fa_rdonly тільки читати;

Ø fa_hidden схований файл;

Ø fa_system системний файл;

Ø fa_subdir підкаталог;

Ø fa_arch архівний файл.

Дії при наявності файлу з вказаним ім’ям (утворення прапорців):

Ø cr_ex_fail якщо файл існує, генерирувати помилку OS;

Ø cr_ex_open файл, що існує, відкритий;

Ø cr_ex_replace якщо файл існує, замінити;

Дії при відсутності файлу з вказаним ім’ям(утворення прапорців:

Ø cr_noex_fail генерує помилку, якщо файл не існує;

Ø cr_noex_create утворити файл, якщо він не існує;

ЛІТЕРАТУРА

1. Анатолий Адаменко, Андрей Кучуков Логическое программирование и Visual Prolog.- Санкт-Петербург. : ”БХВ Петербург”, 2003г., -990.

2. Ц. Ин, Д.Соломон. Использование Турбо-Пролога. – М.: Мир, 1993 г., -с.606.

3. Доорс Дж. и др. Пролог– язык программирования будущего. – М.: Финансы и статистика, 1990 г.,-с.141.

4. Клоксин У., Меллиш К. Программирование на языке Пролог. – М.: Мир, 1987 г., 336.

5. Янсон А. Турбо-Пролог в сжатом изложении. – М.: Мир, 1991 г., 136.

6. Марселлус Д. Программирование экспертных систем на Турбо-Прологе. – М.: Финансы и статистика, 1994 г., 254.

7. Документация по Турбо-Прологу. Версия 2.0. Руководство пользователя. 1988г.,-с.174.

 


<== попередня лекція | наступна лекція ==>
Предикат filepos можна використати для знаходження довжини файлу в байтах. | Визначення формальної граматики і мови. Первинні поняття. Приклади, що ілюструють первинні поняття


Онлайн система числення Калькулятор онлайн звичайний Науковий калькулятор онлайн