2016-06-09 13 views
0

Das ist ziemlich genau das, was ich versuche zu erreichen.Schreibe Text in einen Puffer im Speicher in Swi-Prolog?

process(P,Txt) :- 
    % do stuff and write messages to Txt, but not to std out. 

start(P) :- 
    process(P,Txt), 
    write(Txt). % now write to std out. 

Kann ich das mit SWI-Prolog machen? Gibt es eine Möglichkeit, Text in einen Stream im Speicher zu schreiben und diesen Text später auszugeben?

+1

Loon in den SWI-Prolog Abschnitt auf Speicherdateien: http://www.swi-prolog.org/pldoc/man?section=memory- Dateien –

+0

Großartig, danke. Kannst du das als Antwort schreiben? – devil0150

Antwort

1

SWI-Prolog bietet einige nicht standardmäßige, aber recht nützliche Funktionen, die Ihnen bei Ihrer Aufgabe helfen können. Eine davon sind Speicherdateien, die für die temporäre Pufferung von Daten verwendet werden können. Details siehe:

http://www.swi-prolog.org/pldoc/man?section=memory-files

Eine weitere Möglichkeit, das with_output_to/2 Einbau-Prädikat verwendet werden könnte, die Sie zum Beispiel schreiben kann und Atom oder eine Zeichenfolge, die Sie später Ausgabe:

http://www.swi-prolog.org/pldoc/doc_for?object=with_output_to/2