开发者

copy file into another file in prolog

开发者 https://www.devze.com 2023-01-01 09:22 出处:网络
Good morning/evening how can I write something in a file and then copy its content into the current file?

Good morning/evening

how can I write something in a file and then copy its content into the current file?

for example I consult file1.pro then I have rule write something in file2.pro , after this rule finish its job I want append the content of the file2.pro int file1.pro .

when I tried to append into file1.pro directly , the data appear like undefined symbols ,I don't know why

please hellp me

开发者_StackOverflow社区thank you.


Specifics of the solution might depend on the Prolog dialect. Here I am using SWI-Prolog. SWI-Prolog allows you to open a file with open(SrcDest, Mode, Stream), where SrcDest will be your file name, Mode is read/write/append/update, and Stream is the "file descriptor" the system will return. The manual clarifies difference between appending and updating as follows: "Mode append opens the file for writing, positioning the file-pointer at the end. Mode update opens the file for writing, positioning the file-pointer at the beginning of the file without truncating the file."

To copy from one stream to another you should use copy_stream_data(Stream1,Stream2).

Finally, you should close the streams, otherwise the output file will be empty.

Putting everything together gives

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

If you need to rewrite the second file, just use update/append mode.

0

精彩评论

暂无评论...
验证码 换一张
取 消