将文件复制到prolog中的另一个文件中

时间:2010-05-24 21:36:20

标签: prolog

早上好/晚上

如何在文件中写入内容然后将其内容复制到当前文件中?

例如我咨询file1.pro然后我有规则在file2.pro写一些东西,在这个规则完成它的工作后我想要附加file2.pro int file1.pro的内容。

当我试图直接追加到file1.pro时,数据看起来像未定义的符号,我不知道为什么

请告诉我

谢谢。

1 个答案:

答案 0 :(得分:1)

解决方案的细节可能取决于Prolog方言。我在这里使用SWI-Prolog。 SWI-Prolog允许您打开一个打开的文件(SrcDest,Mode,Stream),其中SrcDest将是您的文件名,Mode是读/写/追加/更新,Stream是系统将返回的“文件描述符”。该手册阐明了追加和更新之间的区别,如下所示:“模式追加打开文件进行写入,将文件指针放在最后。模式更新打开文件进行写入,将文件指针定位在文件的开头而不截断文件。“

要从一个流复制到另一个流,您应该使用copy_stream_data(Stream1,Stream2)。

最后,您应关闭流,否则输出文件将为空。

将所有内容放在一起会产生

copy(File1,File2): - open(File1,read,Stream1),open(File2,write,Stream2),copy_stream_data(File1,File2),close(File1),close(File2)。

如果您需要重写第二个文件,只需使用更新/追加模式。