Prolog中的字符串流?

Geo*_*zos 4 stream stringstream swi-prolog

我必须使用一些 SWI-Prolog 代码来打开一个新流(它在文件系统上创建一个文件)并倒入一些数据。生成的文件稍后在代码中的其他地方读取。

我想用 Prolog 中的字符串流替换文件流,以便不创建文件,然后将放入流中的所有内容作为一个大字符串读取。

SWI-Prolog 有字符串流吗?如果是这样,我如何使用它们来完成此任务?如果您能提供一个小片段,我将不胜感激。谢谢!

Cap*_*liC 6

SWI-Prolog 实现内存映射文件。这是我的一些旧代码的片段,同时进行写入/读取

%%  html2text(+Html, -Text) is det.
%
%   convert from html to text
%
html2text(Html, Text) :-
    html_clean(Html, HtmlDescription),
    new_memory_file(Handle),
    open_memory_file(Handle, write, S),
    format(S, '<html><head><title>html2text</title></head><body>~s</body></html>', [HtmlDescription]),
    close(S),
    open_memory_file(Handle, read, R, [free_on_close(true)]),
    load_html_file(stream(R), [Xml]),
    close(R),
    xpath(Xml, body(normalize_space), Text).
Run Code Online (Sandbox Code Playgroud)