stream - Prolog中的字符串流?

标签 stream stringstream swi-prolog

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

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

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

最佳答案

SWI-Prolog 实现 memory mapped files .这是我的一些旧代码的片段,同时进行写入/读取

%%  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).

关于stream - Prolog中的字符串流?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23593156/

相关文章:

stream - 当域事件影响同一限界上下文中的多个聚合时,EventSourcing 中的 StreamId 是什么?

Android MediaPlayer 错误 : MediaPlayer error(1, -2147483648) 来自互联网的 Stream

c++ - 使用 stringstream float 的字符串

ffmpeg - 将 Chromium(或任何 Internet 浏览器)捕获到传输流中

c++ - 在不复制整个缓冲区的情况下获取字符串流中的最后一个字符

c++ - 如何重用字符串流

prolog - 以秒为单位递增日期时间

bash - Prolog 中从字符串到列表的转换

java - German Umlaute 的问题,从 SWI Prolog 到 JAVA 的 TCPIP

xml - iOS:下载、解包、解码和解析大文件