Скачиваний:
201
Добавлен:
17.06.2016
Размер:
2.69 Mб
Скачать

Примеры

1. Следующая последовательность открывает файл MYDATA.FIL для запи-

си, затем направляет весь вывод, порождаемый операторами между двумя

предикатами writedevice, в этот файл. MYDATA.FIL соответствует сим-

волическому имени destination, появляющемуся в описании домена file.

domains

file=destination

goal

openwrite(destination,"mydata.fil"),

writedevice(destination)], file /* перенаправление

вывода в файл MYDATA.FIL */

.

.

.

writedevice(screen), /* перенаправление вывода

на экран */

2. Данная последовательность направляет весь вывод, возникающий меж-

ду двумя предикатами writedevice, на устройство печати. Устройство

печати открывать не нужно, так как оно управляется операционной сис-

темой.

Предупреждение: Если устройство печати не подключено, то

если вы выполните эту последовательность, система зависнет.

В этом случае для возвращения управления Турбо Прологу ис-

пользуйте Ctrl-Break.

writedevice(destination)], file / * направление вывода

на печать */

.

.

.

writedevice(screen), /* направление вывода на экран */

3. Программа CH12EX09.PRO для создания программы, которая помещает

символы, набранные на клавиатуре, в файл ДОС TRYFILE.ONE (на текущем

диске) использует стандартные предикаты read и write. Набираемые

символы не выводятся на экран дисплея. Для вас будет хорошим упраж-

нением написать программу, которая выводила бы эти символы и на эк-

ран. Файл закрывается при нажатии клавиши ( Shift-3 ).

/* Program CH12EX09.PRO */

domains

file = myfile

predicates

readloop

goal

write("this program reads your input and writes it to

TRYFILE.ONE\n",

openwrite(myfile,"tryfile.one"),

writedevice(myfille),

readloop,

closefile(myfile),

write("Your input has been transferred to the file

TRYFILE.ONE").

clauses

readloop:-readchar(X),X<>'#',!,write(X),readloop.

readloop.

Переопределение стандартного ввода-вывода

Домен file имеет три дополнительные опции: stdin, stdout, stderr.

Преимущество этих файлов в том, что вы можете указать операционной систе-

ме ДОС на необходимость переназначения стандартного ввода-вывода в коман-

дной строке.

stdin Стандартный ввод является файлом, доступным только

для чтения. По умолчанию это клавиатура. readdevice

(stdin) назначает устройством ввода stdin.

stdout Стандартный вывод является файлом, доступным только

для записи. По умолчанию это экран терминала.

writedevice (stdout) назначает устройством вывода stdout.

stderr Стандартный вывод ошибок является файлом. Доступен

только для записи. Это всегда экран терминала.

writedevice (stderr) назначает устройством для вывода сообщений

об ошибках экран.

Соседние файлы в папке Документация