How to append to a file using Scheme?

穿精又带淫゛_ 提交于 2020-01-15 09:44:33

问题


I am using TinyScheme (actually Script-Fu in GIMP), and cannot find a good way to open a file and append a line of text to it.

I am trying to log some info to the file for debugging, and transcript-on doesn't seem to be implemented...

Right now I am scraping along by reading the entire file (one character at a time!), concatenating that into a string, concatenating my text to the end of that, then writing it all out to the file again.

There must be a better way!


回答1:


It's going to be something like

(open-file "myfile" (file-options append))

You want to look up the file-options function.

Update

Here's the guile version:

(open-file "myfilename.dat" "a")



回答2:


Just had the same exact problem in GIMP and decided to use open-input-output-file. My solution is something like this:

(let* ((out (open-input-output-file "file.txt") ))
  (display "hello world" out)
  (newline out)                    
  (close-output-port out))

Went through the TinyScheme source and checked that this function actually calls fopen with "a+". The file is open for reading and writing. For our purposes we only want to write, so just ignore reading.

I am writing a Script-Fu to write the values of gimp-selection-bounds to a file.



来源:https://stackoverflow.com/questions/544812/how-to-append-to-a-file-using-scheme

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!