logo
TRPP_uberdohuya

Работа с файлами

Текущим входным потоком данных по умолчанию является клавиатура (user). Предикат see(X) открывает файл X, если он еще не открыт, и файл X становится текущим входным потоком данных. Цель seeing(X) успешна, если имя текущего входного потока сопоставимо с X. Предикат seen закрывает текущий входной поток и переключается на интерактивный ввод данных от пользователя.

Текущим выходным потоком данных по умолчанию является экран (user). Предикат tell(X) открывает файл X, если он еще не открыт, и файл X становится текущим выход­ным потоком данных Цель telling(X) успешна, если имя текущего выходного потока сопоставимо с X. Предикат told закрывает текущий выходной поток и переключается на интерактивный вывод данных пользователю.

Выше перечислены классические предикаты, используемый в Эдинбургской нотации.

Следует отметить, что SWI-Пролог содержит избыточное множество встроенных предикатов для работы с файловой системой (часть которых представлена ниже), и даже поддерживает ряд команд, заимствованных из ОС Unix (например, вызов ls. - выдаст список всех файлов в текущей рабочей директории, а команда cd('../'). - сменит текущий рабочий каталог на его родительскую директорию).

В диалекте SWI-Пролога в частности заслуживают внимания следующие предикаты (их подробное описание можно найти в программной справке):