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

Расширение базы данных с помощью файлов

Предикат readterm позволяет получить доступ к фактам в файле.

readterm может считать любые объекты, записанные предикатом write, и име-

ет вид:

readterm(<name>,TermParam),

где <name> - имя домена. Следующая программа показывает, как readterm мо-

жет быть использован.

domains

nam,addr = string

one_data_record = p(name,addr)

file = file_of_data_records

predicates

person(name,addr)

moredata(file)

clauses

person(Name,Addr) :-

openread(fie_of_data_records,"dd.dat"),

readdevice(file_of_data_records),

moredata(file_of_data_records),

readterm(one_data_record,p(Name,Addr)).

moredata(_).

moredata(File):-

not(eof(File)),

moredata(File).

Если файл DD.DAT содержит факты принадлежащие к домену

one_data_record,такие как

p("Peter","28th Street")

p("Curt","Wall Street"),

то последующее является примером диалога, который возвращает информацию

из этого файла:

Goal : person("Peter",Address).

Address = "28th Street"

1 Solution

Goal : person("Peter","Not an address").

No

Goal :