SlideShare a Scribd company logo
ФАЙЛИ: ЗАПИС ТА ЧИТАННЯ
Лекція 5
1. ФАЙЛОВА СИСТЕМА В PROLOG
Файл може бути відкритий:
 для читання;
 для запису;
 для додавання;
 для модифікації.
Файл, відкритий для будь-якої дії, відмінної від читання, повинен бути закритий
після завершення операції. В іншому випадку внесені до файлу зміни можуть бутипісля завершення операції. В іншому випадку внесені до файлу зміни можуть бути
втрачені. Можна відкрити кілька файлів одночасно. При цьому введення і виведення
можуть бути швидко перепризначені між відкритими файлами.
Вбудовані альтернативи домену file:
keyboard Читання з клавіатури (за замовчуванням)
screen Запис в монітор
stdin Читання зі стандартного вводу
stdout Запис в стандартне виведення
stderr Запис на стандартний пристрій для виведення помилок
1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ
Предикат openread / 2
відкриває файл OSFileName для читання, використовуючи формат:
openread (SymbolicFileName, OSFileName) % (i, i)
Prolog звертається до відкритого файлу по символічному імені SymbolicFileName,
оголошеному в домені file. Якщо файл не може бути відкритий, Prolog видасть
повідомлення про помилку.
Предикат openwrite / 2
відкриває файл OSFileName для запису, використовуючи формат:відкриває файл OSFileName для запису, використовуючи формат:
openwritе (SymbolicFileName, OSFileName) % (i, i)
Якщо файл вже існує, то він знищується. В іншому випадку Prolog створює новий
файл і поміщає його у відповідному каталозі. Якщо файл не може бути створений,
Prolog видасть повідомлення про помилку.
Предикат openappend / 2
відкриває файл OSFileName для запису в кінець файлу. При цьому
використовується формат:
openappend (SymbolicFileName, OSFileName) % (i, i)
Якщо файл не може бути відкритий для запису, Prolog повідомить про помилку.
1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ
Предикат openmodify / 2
відкриває файл OSFileName і для запису, і для читання; якщо файл вже існує, він
не буде перезаписаний, openmodify має формат:
openmodify (SymbolicFileName, OSFileName) % (i, i)
Якщо система не може відкрити OSFileName, Prolog повідомить про помилку. Для
заповнення файлу з довільним доступом предикат openmodify може
використовуватися разом зі стандартним предикатом filepos.
Предикат filemode / 2
При відкритті файлу в текстовому режимі предикат filemode встановлює вказанийПри відкритті файлу в текстовому режимі предикат filemode встановлює вказаний
файл в текстовий або двійковий режим, використовуючи формат:
filemode (SymbolicFileName, FileMode) % (i, i)
Якщо FileMode = 0, файл SymbolicFileName встановлюється в двійковий режим;
якщо FileMode = 1, то він встановлюється в текстовий режим. У текстовому режимі
при запису до нових рядків додаються символи "повернення каретки "/" переведення
рядка ", а при читанні ця пара символів інтерпретується як новий рядок.
Carriage return (повернення каретки) = ASCII 13
Line feed (переклад рядка) = ASCII 10
У двійковому режимі ніяких перетворень не проводиться. Для читання двійкового
файлу можна використовувати тільки предикат readchar або предикати для доступу
до двійковим файлів,
1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ
Предикат closefile / 1
закриває вказаний файл; він використовує формат: closefile (SymbolicFileName)
% (i)
Цей предикат завжди завершується успішно, навіть якщо файл не був відкритим.
Предикат readdevice / 1
перевизначає current_read_device (поточний пристрій читання) або повертає
його ім'я. Предикат має формат:
readdevice (SymbolicFileName) % (i), (о)readdevice (SymbolicFileName) % (i), (о)
Предикат readdevice перевизначає поточний пристрій читання, якщо змінна
SymbolicFileName визначена, і файл відкритий для читання. Якщо SymbolicFileName
є вільною змінною, то readdevice присвоїть їй ім'я поточного активного пристрою
читання.
Предикат writedevice / 1
або призначає, або дозволяє отримати ім'я current_write_device (поточного
пристрою запису). Він має формат:
writedevice (SymbolicFileName) % (i), (о)
Предикат writedevice перевизначить пристрій запису, якщо зазначений файл
відкритий для запису або додавання. Якщо змінна SymbolicFileName вільна,
writedevice присвоїть їй ім'я поточного активного пристрою запису.
1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ
2. РОБОТА З ФАЙЛАМИ
Предикат filepos / 3
може керувати позицією, де проводиться читання або запис. Має формат:
filepos (SymbolicFileName, FilePosition, Mode) % (i, i, i), (i, o, i)
Якщо FilePosition - пов'язана змінна, предикат може змінити позицію читання і запису
для файлу з ім'ям SymbolicFileName. Якщо при виклику FilePosition є вільною змінною, то
SymbolicFileName повертає поточну позицію у файлі. Значення SymbolicFileName належить
типу long.
Mode FilePosition
Mode є цілою величиною і вказує, як має інтерпретуватися значення FilePosition:
0 Щодо початку
файлу
1 Щодо поточної
позиції
2 Щодо кінця
файлу (кінець файлу
відповідає
позиції 0)
Коли повертається
FilePosition, то filepos
повертає позицію щодо
початку файлу незалежно
від значення Mode.
2. РОБОТА З ФАЙЛАМИ
2. РОБОТА З ФАЙЛАМИ
Предикат eof / 1
перевіряє, чи є позиція, отримана в процесі читання, кінцем файлу. У цьому випадку
eof успішний. В іншому випадку - неуспіх.
Предикат eof має вигляд:
eof (SymbolicFileName)% (i)
eof видає помилку під час виконання, якщо файл був відкритий з правами тільки на
запис.
Зверніть увагу, що предикат не надає особливого значення символу кінця файла
DOS (комбінація клавіш <Ctrl> + <Z>).DOS (комбінація клавіш <Ctrl> + <Z>).
Приклад, як предикат eof можна
використовувати для визначення
предиката repfile, який корисний при роботі з
файлами, repfile генерує точку овернення до тих
пір, поки не буде досягнуто кінець файлу.
2. РОБОТА З ФАЙЛАМИ
2. РОБОТА З ФАЙЛАМИ
Предикат flush / 1
записує вміст внутрішнього буфера в іменований файл. Має формат:
flush (SymbolicFileName)% (i)
Він же запитує систему "скинути всі буфери".
Предикат existfile / 1
виконується успішно, якщо файл ОSFileName буде знайдений. Формат його наступний:
existfile (OSFileName)% (i)
Предикат OSFileName може містити каталог, а саме ім'я може містити знакиПредикат OSFileName може містити каталог, а саме ім'я може містити знаки
підстановки, як c:  psys  *. cfg. Предикат existfile завершується неуспішно, якщо ім'я
файлу не знайдено в позначеному шляху каталогу. Проте, незважаючи на те, що existfile
знаходить всі файли, включаючи файли з встановленими атрибутами "system“ і "hidden“,
він не знаходить каталоги. Це може бути виконано використанням предикатів пошуку
каталогів.
Для перевірки того, що файл присутній на диску (перш ніж відкривати його), ви
можете скористатися:
2. РОБОТА З ФАЙЛАМИ
Предикат search file / 3
використовується для знаходження файлу в списку шляхів. Він приймає три
аргументи:
searchfile (PathList, Name, FoundName)% (i, i, o)
де PathList - це рядок, що містить один або більше шляхів, розділених «;», Name - ім'я
шуканого файлу. Якщо файл знайдений, FoundName буде пов'язана з повним його
ім'ям, інакше searchfile завершиться неуспішно. Наприклад:
SearchFile (".; ..; С:  ", "autoexec.bat", FoundName),SearchFile (".; ..; С:  ", "autoexec.bat", FoundName),
якщо autoexec.bat розташований в корені диска С:, FoundName встановиться рівним
C:  AUTOEXEC.BAT.
Файл може містити символи підстановки. У цьому випадку FoundName буде
пов'язана з повним ім'ям файлу, що містить символи підстановки, і далі може бути
використана як аргумент для предикатів пошуку каталогів. Наприклад, якщо ім'я
файлу в попередньому прикладі задано як *. bat замість autoexec.bat, FoundName
виявиться пов'язаним з С:  *. ВАТ.
Предикат deletefile / 1
знищує файл, заданий його аргументом, і має формат:
deletefile (OSFileName)% (i)
Предикат deletefile дасть помилку, якщо не зможе видалити файл. OSFileName
3. УПРАВЛІННЯ ТЕРМАМИ
Предикат readterm дозволяє отримати доступ до фактів у файлі. Він може зчитати будь-
які об'єкти, записані предикатом write, і має вигляд: readterm (<name>, TermParam), де
<name> - ім'я домену.
3. УПРАВЛІННЯ ТЕРМАМИ
Visual Prolog створює одну доменну альтернативу для кожного предиката з розділу facts. Пролог
описує кожен предикат бази фактів за допомогою функтора і доменів аргументів цього предиката.
Наприклад, для такого оголошення розділу facts:
Visual Prolog
згенерує:

More Related Content

What's hot

5 клас урок 5
5 клас урок 55 клас урок 5
5 клас урок 5
Olga Sokolik
 
Файлова система. Файл
Файлова система. ФайлФайлова система. Файл
Файлова система. Файл
Дмитро Фомін
 
Ntfs &amp; fat32
Ntfs &amp; fat32Ntfs &amp; fat32
Ntfs &amp; fat32
Andrii Hladkyi
 
Файлові системи NTFS і FAT
Файлові системи NTFS і FATФайлові системи NTFS і FAT
Файлові системи NTFS і FAT
jap2006
 
презентація
презентаціяпрезентація
презентація
Sergiy1234
 
урок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єктиурок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єкти
School5uman
 
Інформатика-6. Урок 10
Інформатика-6. Урок 10Інформатика-6. Урок 10
Інформатика-6. Урок 10
Володимир Бондар
 
6 клас Урок 9 10-11-12 робота з об'єктами файлової системи
6 клас Урок 9 10-11-12 робота з об'єктами файлової системи6 клас Урок 9 10-11-12 робота з об'єктами файлової системи
6 клас Урок 9 10-11-12 робота з об'єктами файлової системи
kissoli
 
5 клас урок 7
5 клас урок 75 клас урок 7
5 клас урок 7
Марина Конколович
 
урок2 файли
урок2 файли урок2 файли
урок2 файли
AllaGureva
 
лабораторна робота №3
лабораторна робота №3лабораторна робота №3
лабораторна робота №3
Юра Марчук
 
урок 3
урок 3урок 3
урок 3
AllaGureva
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
Татьяна Вербицкая
 
урок 8
урок 8урок 8
програмування мовою паскаль
програмування мовою паскальпрограмування мовою паскаль
програмування мовою паскальOlga Lyulchik
 
13 2
13 213 2

What's hot (17)

6 10
6 106 10
6 10
 
5 клас урок 5
5 клас урок 55 клас урок 5
5 клас урок 5
 
Файлова система. Файл
Файлова система. ФайлФайлова система. Файл
Файлова система. Файл
 
Ntfs &amp; fat32
Ntfs &amp; fat32Ntfs &amp; fat32
Ntfs &amp; fat32
 
Файлові системи NTFS і FAT
Файлові системи NTFS і FATФайлові системи NTFS і FAT
Файлові системи NTFS і FAT
 
презентація
презентаціяпрезентація
презентація
 
урок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єктиурок 9. файлова система та її об'єкти
урок 9. файлова система та її об'єкти
 
Інформатика-6. Урок 10
Інформатика-6. Урок 10Інформатика-6. Урок 10
Інформатика-6. Урок 10
 
6 клас Урок 9 10-11-12 робота з об'єктами файлової системи
6 клас Урок 9 10-11-12 робота з об'єктами файлової системи6 клас Урок 9 10-11-12 робота з об'єктами файлової системи
6 клас Урок 9 10-11-12 робота з об'єктами файлової системи
 
5 клас урок 7
5 клас урок 75 клас урок 7
5 клас урок 7
 
урок2 файли
урок2 файли урок2 файли
урок2 файли
 
лабораторна робота №3
лабораторна робота №3лабораторна робота №3
лабораторна робота №3
 
урок 3
урок 3урок 3
урок 3
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
 
урок 8
урок 8урок 8
урок 8
 
програмування мовою паскаль
програмування мовою паскальпрограмування мовою паскаль
програмування мовою паскаль
 
13 2
13 213 2
13 2
 

Viewers also liked

Lect 6 prolog
Lect 6 prologLect 6 prolog
Lect 6 prolog
Halyna Melnyk
 
Lect ai 2 nn
Lect ai 2 nnLect ai 2 nn
Lect ai 2 nn
Halyna Melnyk
 
Lect 2 prolog
Lect 2 prologLect 2 prolog
Lect 2 prolog
Halyna Melnyk
 
Lect 1 intro
Lect 1 introLect 1 intro
Lect 1 intro
Halyna Melnyk
 
Lect 3 4 prolog
Lect 3 4 prologLect 3 4 prolog
Lect 3 4 prolog
Halyna Melnyk
 
Lect аі 2 n net p2
Lect аі 2 n net p2Lect аі 2 n net p2
Lect аі 2 n net p2
Halyna Melnyk
 
Sql db
Sql dbSql db
Lect ai 3 ga
Lect ai 3  gaLect ai 3  ga
Lect ai 3 ga
Halyna Melnyk
 

Viewers also liked (8)

Lect 6 prolog
Lect 6 prologLect 6 prolog
Lect 6 prolog
 
Lect ai 2 nn
Lect ai 2 nnLect ai 2 nn
Lect ai 2 nn
 
Lect 2 prolog
Lect 2 prologLect 2 prolog
Lect 2 prolog
 
Lect 1 intro
Lect 1 introLect 1 intro
Lect 1 intro
 
Lect 3 4 prolog
Lect 3 4 prologLect 3 4 prolog
Lect 3 4 prolog
 
Lect аі 2 n net p2
Lect аі 2 n net p2Lect аі 2 n net p2
Lect аі 2 n net p2
 
Sql db
Sql dbSql db
Sql db
 
Lect ai 3 ga
Lect ai 3  gaLect ai 3  ga
Lect ai 3 ga
 

Similar to Lect 5 prolog

5 клас урок 13
5 клас урок 135 клас урок 13
5 клас урок 13Tkachov1957
 
Лекція №12
Лекція №12Лекція №12
Лекція №12
Michael Attwood
 
7Файлові операції у С++.pptx
7Файлові операції у С++.pptx7Файлові операції у С++.pptx
7Файлові операції у С++.pptx
ssuser3b34ba
 
урок 13 файли та папки
урок 13 файли та папкиурок 13 файли та папки
урок 13 файли та папкиHelen Pat
 
5 клас урок 13 файли та папки
5  клас урок 13 файли та папки 5  клас урок 13 файли та папки
5 клас урок 13 файли та папки Helen Pat
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
Марина Конколович
 
5 клас урок 5
5 клас урок 55 клас урок 5
5 клас урок 5
pupilsShostka
 
6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи
Юлія Артюх
 
2 9
2 92 9
Пошук файлів і папок
Пошук файлів і папокПошук файлів і папок
Пошук файлів і папокTamara Emec
 
+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000
Ольга Рыбак
 
файли та папки 6 клас
файли та папки 6 класфайли та папки 6 клас
файли та папки 6 класIllariya
 
Урок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування данихУрок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування даних
Василь Тереховський
 
стисннення та арх
стисннення та архстисннення та арх
стисннення та архAnn Eres
 
урок 10 6 клас сл ш
урок 10 6 клас сл шурок 10 6 клас сл ш
урок 10 6 клас сл ш
Helen Pata
 
Razdel14
Razdel14Razdel14
Razdel14navihc
 
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
kissoli
 
6 клас 10 урок. Опреції над об'єктами файлової системи.
6 клас 10 урок. Опреції над об'єктами файлової системи.6 клас 10 урок. Опреції над об'єктами файлової системи.
6 клас 10 урок. Опреції над об'єктами файлової системи.
StAlKeRoV
 

Similar to Lect 5 prolog (20)

5 клас урок 13
5 клас урок 135 клас урок 13
5 клас урок 13
 
Лекція №12
Лекція №12Лекція №12
Лекція №12
 
7Файлові операції у С++.pptx
7Файлові операції у С++.pptx7Файлові операції у С++.pptx
7Файлові операції у С++.pptx
 
урок 13 файли та папки
урок 13 файли та папкиурок 13 файли та папки
урок 13 файли та папки
 
5 клас урок 13 файли та папки
5  клас урок 13 файли та папки 5  клас урок 13 файли та папки
5 клас урок 13 файли та папки
 
5 клас урок 6
5 клас урок 65 клас урок 6
5 клас урок 6
 
5 клас урок 5
5 клас урок 55 клас урок 5
5 клас урок 5
 
6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи6 клас урок 9. Поняття файлової системи
6 клас урок 9. Поняття файлової системи
 
2 9
2 92 9
2 9
 
Пошук файлів і папок
Пошук файлів і папокПошук файлів і папок
Пошук файлів і папок
 
+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000+4 faylovi operaciji_u_s2000
+4 faylovi operaciji_u_s2000
 
файли та папки 6 клас
файли та папки 6 класфайли та папки 6 клас
файли та папки 6 клас
 
Урок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування данихУрок 8. Стиснення і архівування даних
Урок 8. Стиснення і архівування даних
 
стисннення та арх
стисннення та архстисннення та арх
стисннення та арх
 
урок 10 6 клас сл ш
урок 10 6 клас сл шурок 10 6 клас сл ш
урок 10 6 клас сл ш
 
Razdel14
Razdel14Razdel14
Razdel14
 
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
5 клас урок 9 14 робочий стіл та його об'єкти. файли ,папки
 
6 клас 10 урок. Опреції над об'єктами файлової системи.
6 клас 10 урок. Опреції над об'єктами файлової системи.6 клас 10 урок. Опреції над об'єктами файлової системи.
6 клас 10 урок. Опреції над об'єктами файлової системи.
 
9 klas urok_9_tema_ss
9 klas urok_9_tema_ss9 klas urok_9_tema_ss
9 klas urok_9_tema_ss
 
Razdel14
Razdel14Razdel14
Razdel14
 

More from Halyna Melnyk

Sql global
Sql globalSql global
Sql global
Halyna Melnyk
 
Sql pl
Sql plSql pl
Sql granting
Sql grantingSql granting
Sql granting
Halyna Melnyk
 
Sql view
Sql viewSql view
Sql view
Halyna Melnyk
 
Sql select 3
Sql select 3Sql select 3
Sql select 3
Halyna Melnyk
 
Sql select 2
Sql select 2Sql select 2
Sql select 2
Halyna Melnyk
 
Sql select 1
Sql select 1Sql select 1
Sql select 1
Halyna Melnyk
 
Sql dml
Sql dmlSql dml
Sql dml
Halyna Melnyk
 
Sql ddl
Sql ddlSql ddl
Sql ddl
Halyna Melnyk
 

More from Halyna Melnyk (9)

Sql global
Sql globalSql global
Sql global
 
Sql pl
Sql plSql pl
Sql pl
 
Sql granting
Sql grantingSql granting
Sql granting
 
Sql view
Sql viewSql view
Sql view
 
Sql select 3
Sql select 3Sql select 3
Sql select 3
 
Sql select 2
Sql select 2Sql select 2
Sql select 2
 
Sql select 1
Sql select 1Sql select 1
Sql select 1
 
Sql dml
Sql dmlSql dml
Sql dml
 
Sql ddl
Sql ddlSql ddl
Sql ddl
 

Recently uploaded

Звіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.pptЗвіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.ppt
ssuserce4e97
 
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учнюР.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
Adriana Himinets
 
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Чернівецька обласна бібліотека для дітей
 
Проєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". БуковинаПроєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". Буковина
НБУ для дітей
 
zarahuvannia do pershogo klassu IMG_20240607_0001.pdf
zarahuvannia do pershogo klassu IMG_20240607_0001.pdfzarahuvannia do pershogo klassu IMG_20240607_0001.pdf
zarahuvannia do pershogo klassu IMG_20240607_0001.pdf
AleksSaf
 
Зернобобові культури в Україні: сучасний стан та перспективи використання
Зернобобові культури в Україні: сучасний стан та перспективи використанняЗернобобові культури в Україні: сучасний стан та перспективи використання
Зернобобові культури в Україні: сучасний стан та перспективи використання
Vinnytsia Regional Universal Scientific Library named after Valentin Otamanovsky
 
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
tetiana1958
 
Майстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій ЯкутовичаМайстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій Якутовича
НБУ для дітей
 
Оригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учнюОригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учню
Adriana Himinets
 
Передвиборча програма Ковальової Катерини
Передвиборча програма Ковальової КатериниПередвиборча програма Ковальової Катерини
Передвиборча програма Ковальової Катерини
tetiana1958
 
Р.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". ПрезентаціяР.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". Презентація
Adriana Himinets
 
Передвиборча програма Майора Станіслава
Передвиборча програма  Майора СтаніславаПередвиборча програма  Майора Станіслава
Передвиборча програма Майора Станіслава
tetiana1958
 
Постанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdfПостанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdf
24tvua
 
курсова робота теорема Штольца з математики
курсова робота теорема Штольца з математикикурсова робота теорема Штольца з математики
курсова робота теорема Штольца з математики
ssuser3a363c
 
педрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptxпедрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptx
home
 
Безбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна нормаБезбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна норма
ssuser15a891
 
Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».
Vinnytsia Regional Universal Scientific Library named after Valentin Otamanovsky
 
Звіт керівника закладу за 2023-2024.pptx
Звіт керівника закладу за 2023-2024.pptxЗвіт керівника закладу за 2023-2024.pptx
Звіт керівника закладу за 2023-2024.pptx
ssuserd0ab23
 
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Pervushina1983
 
"Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича""Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича"
Чернівецька обласна бібліотека для дітей
 

Recently uploaded (20)

Звіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.pptЗвіт самооцінювання осв. середовище 2024.ppt
Звіт самооцінювання осв. середовище 2024.ppt
 
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учнюР.Л.Стівенсон "Вересовий трунок". Допомога учню
Р.Л.Стівенсон "Вересовий трунок". Допомога учню
 
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
Топ книг для літнього настрою: рекомендаційні списки літератури для позакласн...
 
Проєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". БуковинаПроєкт "Подорож містами України". Буковина
Проєкт "Подорож містами України". Буковина
 
zarahuvannia do pershogo klassu IMG_20240607_0001.pdf
zarahuvannia do pershogo klassu IMG_20240607_0001.pdfzarahuvannia do pershogo klassu IMG_20240607_0001.pdf
zarahuvannia do pershogo klassu IMG_20240607_0001.pdf
 
Зернобобові культури в Україні: сучасний стан та перспективи використання
Зернобобові культури в Україні: сучасний стан та перспективи використанняЗернобобові культури в Україні: сучасний стан та перспективи використання
Зернобобові культури в Україні: сучасний стан та перспективи використання
 
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
Випуск магістрів- науковців факультету мехатроніки та інжинірингу, 2024 р.
 
Майстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій ЯкутовичаМайстер графічного малюнку. Георгій Якутовича
Майстер графічного малюнку. Георгій Якутовича
 
Оригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учнюОригінал. Переклад. Види перекладів. Допомога учню
Оригінал. Переклад. Види перекладів. Допомога учню
 
Передвиборча програма Ковальової Катерини
Передвиборча програма Ковальової КатериниПередвиборча програма Ковальової Катерини
Передвиборча програма Ковальової Катерини
 
Р.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". ПрезентаціяР.Л.Стівенсон "Вересовий трунок". Презентація
Р.Л.Стівенсон "Вересовий трунок". Презентація
 
Передвиборча програма Майора Станіслава
Передвиборча програма  Майора СтаніславаПередвиборча програма  Майора Станіслава
Передвиборча програма Майора Станіслава
 
Постанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdfПостанова №648 уряду від 04 червня 2024 року. .pdf
Постанова №648 уряду від 04 червня 2024 року. .pdf
 
курсова робота теорема Штольца з математики
курсова робота теорема Штольца з математикикурсова робота теорема Штольца з математики
курсова робота теорема Штольца з математики
 
педрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptxпедрада 2024 травень 2педрада 2024 травень .pptx
педрада 2024 травень 2педрада 2024 травень .pptx
 
Безбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна нормаБезбар’єрність в бібліотеці – суспільна норма
Безбар’єрність в бібліотеці – суспільна норма
 
Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».Віртуальна виставка «Батько – це сила і мудрість».
Віртуальна виставка «Батько – це сила і мудрість».
 
Звіт керівника закладу за 2023-2024.pptx
Звіт керівника закладу за 2023-2024.pptxЗвіт керівника закладу за 2023-2024.pptx
Звіт керівника закладу за 2023-2024.pptx
 
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
Звіт директора КЗО "СЗШ №124" ДМР 2023-2024 н.р.
 
"Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича""Він плакав і сміявся з народом: творчий спадок Федьковича"
"Він плакав і сміявся з народом: творчий спадок Федьковича"
 

Lect 5 prolog

  • 1. ФАЙЛИ: ЗАПИС ТА ЧИТАННЯ Лекція 5
  • 2. 1. ФАЙЛОВА СИСТЕМА В PROLOG Файл може бути відкритий:  для читання;  для запису;  для додавання;  для модифікації. Файл, відкритий для будь-якої дії, відмінної від читання, повинен бути закритий після завершення операції. В іншому випадку внесені до файлу зміни можуть бутипісля завершення операції. В іншому випадку внесені до файлу зміни можуть бути втрачені. Можна відкрити кілька файлів одночасно. При цьому введення і виведення можуть бути швидко перепризначені між відкритими файлами. Вбудовані альтернативи домену file: keyboard Читання з клавіатури (за замовчуванням) screen Запис в монітор stdin Читання зі стандартного вводу stdout Запис в стандартне виведення stderr Запис на стандартний пристрій для виведення помилок
  • 3. 1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ Предикат openread / 2 відкриває файл OSFileName для читання, використовуючи формат: openread (SymbolicFileName, OSFileName) % (i, i) Prolog звертається до відкритого файлу по символічному імені SymbolicFileName, оголошеному в домені file. Якщо файл не може бути відкритий, Prolog видасть повідомлення про помилку. Предикат openwrite / 2 відкриває файл OSFileName для запису, використовуючи формат:відкриває файл OSFileName для запису, використовуючи формат: openwritе (SymbolicFileName, OSFileName) % (i, i) Якщо файл вже існує, то він знищується. В іншому випадку Prolog створює новий файл і поміщає його у відповідному каталозі. Якщо файл не може бути створений, Prolog видасть повідомлення про помилку. Предикат openappend / 2 відкриває файл OSFileName для запису в кінець файлу. При цьому використовується формат: openappend (SymbolicFileName, OSFileName) % (i, i) Якщо файл не може бути відкритий для запису, Prolog повідомить про помилку.
  • 4. 1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ Предикат openmodify / 2 відкриває файл OSFileName і для запису, і для читання; якщо файл вже існує, він не буде перезаписаний, openmodify має формат: openmodify (SymbolicFileName, OSFileName) % (i, i) Якщо система не може відкрити OSFileName, Prolog повідомить про помилку. Для заповнення файлу з довільним доступом предикат openmodify може використовуватися разом зі стандартним предикатом filepos. Предикат filemode / 2 При відкритті файлу в текстовому режимі предикат filemode встановлює вказанийПри відкритті файлу в текстовому режимі предикат filemode встановлює вказаний файл в текстовий або двійковий режим, використовуючи формат: filemode (SymbolicFileName, FileMode) % (i, i) Якщо FileMode = 0, файл SymbolicFileName встановлюється в двійковий режим; якщо FileMode = 1, то він встановлюється в текстовий режим. У текстовому режимі при запису до нових рядків додаються символи "повернення каретки "/" переведення рядка ", а при читанні ця пара символів інтерпретується як новий рядок. Carriage return (повернення каретки) = ASCII 13 Line feed (переклад рядка) = ASCII 10 У двійковому режимі ніяких перетворень не проводиться. Для читання двійкового файлу можна використовувати тільки предикат readchar або предикати для доступу до двійковим файлів,
  • 5. 1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ Предикат closefile / 1 закриває вказаний файл; він використовує формат: closefile (SymbolicFileName) % (i) Цей предикат завжди завершується успішно, навіть якщо файл не був відкритим. Предикат readdevice / 1 перевизначає current_read_device (поточний пристрій читання) або повертає його ім'я. Предикат має формат: readdevice (SymbolicFileName) % (i), (о)readdevice (SymbolicFileName) % (i), (о) Предикат readdevice перевизначає поточний пристрій читання, якщо змінна SymbolicFileName визначена, і файл відкритий для читання. Якщо SymbolicFileName є вільною змінною, то readdevice присвоїть їй ім'я поточного активного пристрою читання. Предикат writedevice / 1 або призначає, або дозволяє отримати ім'я current_write_device (поточного пристрою запису). Він має формат: writedevice (SymbolicFileName) % (i), (о) Предикат writedevice перевизначить пристрій запису, якщо зазначений файл відкритий для запису або додавання. Якщо змінна SymbolicFileName вільна, writedevice присвоїть їй ім'я поточного активного пристрою запису.
  • 6. 1. ВІДКРИТТЯ ТА ЗАКРИТТЯ ФАЙЛІВ
  • 7. 2. РОБОТА З ФАЙЛАМИ Предикат filepos / 3 може керувати позицією, де проводиться читання або запис. Має формат: filepos (SymbolicFileName, FilePosition, Mode) % (i, i, i), (i, o, i) Якщо FilePosition - пов'язана змінна, предикат може змінити позицію читання і запису для файлу з ім'ям SymbolicFileName. Якщо при виклику FilePosition є вільною змінною, то SymbolicFileName повертає поточну позицію у файлі. Значення SymbolicFileName належить типу long. Mode FilePosition Mode є цілою величиною і вказує, як має інтерпретуватися значення FilePosition: 0 Щодо початку файлу 1 Щодо поточної позиції 2 Щодо кінця файлу (кінець файлу відповідає позиції 0) Коли повертається FilePosition, то filepos повертає позицію щодо початку файлу незалежно від значення Mode.
  • 8. 2. РОБОТА З ФАЙЛАМИ
  • 9. 2. РОБОТА З ФАЙЛАМИ Предикат eof / 1 перевіряє, чи є позиція, отримана в процесі читання, кінцем файлу. У цьому випадку eof успішний. В іншому випадку - неуспіх. Предикат eof має вигляд: eof (SymbolicFileName)% (i) eof видає помилку під час виконання, якщо файл був відкритий з правами тільки на запис. Зверніть увагу, що предикат не надає особливого значення символу кінця файла DOS (комбінація клавіш <Ctrl> + <Z>).DOS (комбінація клавіш <Ctrl> + <Z>). Приклад, як предикат eof можна використовувати для визначення предиката repfile, який корисний при роботі з файлами, repfile генерує точку овернення до тих пір, поки не буде досягнуто кінець файлу.
  • 10. 2. РОБОТА З ФАЙЛАМИ
  • 11. 2. РОБОТА З ФАЙЛАМИ Предикат flush / 1 записує вміст внутрішнього буфера в іменований файл. Має формат: flush (SymbolicFileName)% (i) Він же запитує систему "скинути всі буфери". Предикат existfile / 1 виконується успішно, якщо файл ОSFileName буде знайдений. Формат його наступний: existfile (OSFileName)% (i) Предикат OSFileName може містити каталог, а саме ім'я може містити знакиПредикат OSFileName може містити каталог, а саме ім'я може містити знаки підстановки, як c: psys *. cfg. Предикат existfile завершується неуспішно, якщо ім'я файлу не знайдено в позначеному шляху каталогу. Проте, незважаючи на те, що existfile знаходить всі файли, включаючи файли з встановленими атрибутами "system“ і "hidden“, він не знаходить каталоги. Це може бути виконано використанням предикатів пошуку каталогів. Для перевірки того, що файл присутній на диску (перш ніж відкривати його), ви можете скористатися:
  • 12. 2. РОБОТА З ФАЙЛАМИ Предикат search file / 3 використовується для знаходження файлу в списку шляхів. Він приймає три аргументи: searchfile (PathList, Name, FoundName)% (i, i, o) де PathList - це рядок, що містить один або більше шляхів, розділених «;», Name - ім'я шуканого файлу. Якщо файл знайдений, FoundName буде пов'язана з повним його ім'ям, інакше searchfile завершиться неуспішно. Наприклад: SearchFile (".; ..; С: ", "autoexec.bat", FoundName),SearchFile (".; ..; С: ", "autoexec.bat", FoundName), якщо autoexec.bat розташований в корені диска С:, FoundName встановиться рівним C: AUTOEXEC.BAT. Файл може містити символи підстановки. У цьому випадку FoundName буде пов'язана з повним ім'ям файлу, що містить символи підстановки, і далі може бути використана як аргумент для предикатів пошуку каталогів. Наприклад, якщо ім'я файлу в попередньому прикладі задано як *. bat замість autoexec.bat, FoundName виявиться пов'язаним з С: *. ВАТ. Предикат deletefile / 1 знищує файл, заданий його аргументом, і має формат: deletefile (OSFileName)% (i) Предикат deletefile дасть помилку, якщо не зможе видалити файл. OSFileName
  • 13. 3. УПРАВЛІННЯ ТЕРМАМИ Предикат readterm дозволяє отримати доступ до фактів у файлі. Він може зчитати будь- які об'єкти, записані предикатом write, і має вигляд: readterm (<name>, TermParam), де <name> - ім'я домену.
  • 14. 3. УПРАВЛІННЯ ТЕРМАМИ Visual Prolog створює одну доменну альтернативу для кожного предиката з розділу facts. Пролог описує кожен предикат бази фактів за допомогою функтора і доменів аргументів цього предиката. Наприклад, для такого оголошення розділу facts: Visual Prolog згенерує: