Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/maven/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在prolog中将文件复制到另一个文件中_Prolog - Fatal编程技术网

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

在prolog中将文件复制到另一个文件中,prolog,Prolog,早上好/晚上好 如何在文件中写入内容,然后将其内容复制到当前文件中 例如,我查阅file1.pro,然后让规则在file2.pro中编写一些内容,在该规则完成其工作后,我希望附加file2.pro int file1.pro的内容 当我试图直接附加到file1.pro中时,数据看起来像未定义的符号,我不知道为什么 请见鬼去吧 谢谢。解决方案的细节可能取决于Prolog方言。这里我使用的是SWI Prolog。SWI Prolog允许您使用open(SrcDest,Mode,Stream)打开一个

早上好/晚上好

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

例如,我查阅file1.pro,然后让规则在file2.pro中编写一些内容,在该规则完成其工作后,我希望附加file2.pro int file1.pro的内容

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

请见鬼去吧


谢谢。

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

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

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

把所有的东西放在一起

复制(File1,File2):-open(File1,read,Stream1),open(File2,write,Stream2),copy_stream_data(File1,File2),close(File1),close(File2)


如果需要重写第二个文件,只需使用update/append模式。

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

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

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

把所有的东西放在一起

复制(File1,File2):-open(File1,read,Stream1),open(File2,write,Stream2),copy_stream_data(File1,File2),close(File1),close(File2)


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

您是如何尝试直接追加到文件中的?我使用了see('file2.pro')、read(X)、type1(X)、seen、final、reconsult('file1.pro')、reconsult('file2.pro')。类型1(文件结尾)。类型1(X):-open('file1.pro',append,Stream),write(Stream,X),close(Stream)。final:-open('file1.pro',append,Stream),write(Stream,),close(Stream)。您是如何尝试直接追加到文件中的?我使用了see('file2.pro')、read(X)、type1(X)、seen、final、reconsult('file1.pro')、reconsult('file2.pro')。类型1(文件结尾)。类型1(X):-open('file1.pro',append,Stream),write(Stream,X),close(Stream)。最终:-打开('file1.pro',追加,流),写入(流),关闭(流)。