SWI-Prolog 写入文件

Oma*_*aid 7 windows io prolog

我看到了以下线程,它们非常有用并且与我的问题有关

写入文件 | Swi-Prolog | 视窗\

Prolog 在单独的数据库文本文件上插入、修改和删除事实

我尝试使用 tell, tell see , seen 从文本文件中读取写入,但我得到了相同的结果,当(我打开它并看到)时,文件上没有写入任何内容,并且在读取时系统读取 end_of_file 或有一个消息或控制台上显示的错误以下是我的一些工作示例:

start1:-
    open('output.txt',write,OS),
    X = 'Hi all',
    write(OS,X),
    close(OS),
    open('output.txt',read,OS2),
    read(OS2,Input).


start1:-
    absolute_file_name('X.data',Abs),
    open(Abs,write,Out),
    tell(Abs),
    write('HiAll'),
    told,
    close(Out),
    open(Abs,read,In),
    see('X.data'),
    read(X),
    seen,
    write(X).
Run Code Online (Sandbox Code Playgroud)

Oma*_*aid 4

非常感谢@CapelliC,我编写的下面的代码运行良好,用于读取术语的读取内置谓词,当到达文件末尾时,它显示错误,而不是我使用 read_line_to_codes


readfacts:-
    open('output.txt',read,In),
    repeat,
    read_line_to_codes(In,X),writef(" "),
    writef(X),nl,
    X=end_of_file,!,
    nl,
    close(In).


writefacts:-
    open('output.txt',write,Out),
    write(Out,'Age(Peter,30)'),
    write(Out,'Skin(Smith,Black).'),
    close(Out).