logo
Основы искусственного интеллекта

Файлы. Оисание. Стандартные предикаты. Операции над файлами.

Для описания файлового типа используется служебное слово file, описание:

file=символическое имя файла

Символические имена должны начинаться со строчной буквы. В прологе имеются стандартные файлы,которые не нужно описывать в разделе описания доменов

stdin — стандартное устройство ввода (по умолчанию является клавиатура)

stdout — стандартное устройство вывода. (монитор)

Для работы пользователя с файлом, его нужно открыть,а по завершению закрыть.

Стандарное устройство ввода и вывода открывать и закрывать не нужно.

Стандартные предикаты для работы с файлами 1)предикат для открытия файла

openread(f,N) — открывает файл для чтения, первый параметр — это внутреннее или символическое имя файла, второе — строка задающая внешнее имя файла. Если файл с указанным внешним именем не обнаружен,то предикат ложный, и выводится ошибка.

openwrite(f,N) — открывает файл для записи, записывает в новый файл, если уже сущетсвует файл с таким именем,то он будет стерт. Если файл не создан — ошибка.

openappend(f,N) — открывает файл для записи в конец файла. Если файл с указанным именем не найден,то выводится сообщение об ошибке.

openmodify(f,N) — открывает файл для чтения и записи. Если файла нет, то ошибка.

2)проверка на существование файла на диске

existfile(N) — истинен, если файл с указанным именем сущ-т, иначе ложен.

3)закрытие файла

closefile(f) — закрывает файл.

4) удаление и переименование файла

deletfile(N) — удаляет файл, но предварительно файл должен быть закрыт, если файл удалить не получится, то выводится об этом сообщение. closefile(f). deletfile(“d:\\a.txt'')

renamefile(N,New) — Переименовывает файл N в New. Файл должен быть закрыт. closefile(f), renamefile(“c:\\b.txt”,”c:\\c.txt”).

5)проверка конца файла: eof(f) — успешен, если достигнут конец файла.

6)переопределение текущего уст-ва ввода и вывода

readdevice(имя устр-ва) — опр-т уст-во для ввода информации: readdevice(f) readdevice(klybard)

writedevice(имя уст-ва) — опр-т уст-во для вывода информации: writedevice(screen)

7)для вывода иформации, используются встроенные предикаты: write, writef, nl

8)для ввода предикаты: readreal, readint, readln, readchar, readterm.