logo
TurboProlog / Документация / TOM_1

Считывание новых фактов из файла во время выполнения программы

Предикат consult считывает из файла (fileName) факты, описанные в

секции database, и вставляет их в вашу программу в конец соответствующей

базы данных (аналогично тому, как предикат assertz включает факты.) Пре-

дикат consult имеет один или два аргумента:

consult(fileName) /* (i) */

consult(fileName, databaseName) /* (i,i) */

Однако, в отличии от assertz, если вы вызовите consult только с од-

ним аргументом (без имени базы данных), то будут считаны только факты,

которые были описаны в секции без имени (по умолчанию dbasedom).

Если вы вызовите consult с двумя аргументами (имя файла и имя базы

данных), то будут только проверены факты из указанной базы данных. Если

файл содержит что-нибудь кроме фактов указанной базы, то предикат

consult, когда он дойдет до этого, возвратит ошибку.

Обратите внимание, что предикат consult считывает по одному факту.

Если файл содержит десять фактов, а в седьмом факте имеется какая-нибудь

синтаксическая ошибка, consult занесет шесть первых фактов в базу данных

после чего выдаст сообщение об ошибке.

Отметим, что предикат consult может считывать файлы только в том

формате, который создает save (для включения фактов с максимально возмож-

ной скоростью). Файлы не должны содержать:

- прописных символов;

- пробелов за исключением тех, которые содержатся внутри

строк в двойных кавычках;

- комментариев;

- пустых строк;

- символов без двойных кавычек.

При создании или изменении файла с фактами в редакторе нужно соблю-

дать аккуратность.