我需要在prolog中将文件读入数据库,代码如下:
open('C:/Files/text.txt', read, S)
它读得很完美,但我必须将我的pl用于另一台计算机,目录可能不同 例如,如果用
更改打开的代码open('text.txt',read,S)
即使my pl文件和txt在根目录(C:/Files/text.txt)中,也无法读取。
是否有任何更正来读取txt。无论根pl和txt在哪里,只是同一个文件夹是重要的?
答案 0 :(得分:0)
您可以使用谓词absolute_file_name / [2,3]来查看 如何解析相对文件名。例如,我得到:
?- absolute_file_name('text.txt', X, [mode(read)]).
X = 'c:/users/user/documents/prolog/text.txt'.
通常工作目录用于解析亲戚 顶级文件名。您可以访问和修改 工作目录如下:
/* get the wd */
?- working_directory(X, X).
X = 'c:/users/user/documents/prolog/'.
/* set the wd */
?- working_directory(_, 'c:/users/user/desktop').
true.
?- absolute_file_name('text.txt', X, [mode(read)]).
X = 'c:/users/user/desktop/text.txt'
咨询谓词在咨询期间使用不同的规则, 它们相对于当前查阅的文件进行解析。