2015-06-17 46 views
1

我使用以下方法來屏幕輸出保存到文件如何覆蓋或刪除writefile()調用使用的文件?

writefile("file.txt"), 
tex(expression), 
closefile() 

上述自動發送特()的輸出到該文件。這一切都很好,我想要的。 (側面點:它每次都會向文件發送一個令人討厭的NIL行,我必須稍後解析它)。

現在,當再次運行上述代碼時,文件被追加到,這不是我想要的。我想要每次覆蓋文件,或者如果有辦法刪除文件,所以我可以在之前調用delete。

我看着幫助,無法找到一個命令來刪除文件,我也看不到選擇告訴writefile()覆蓋文件?

有沒有辦法解決這個問題?我在Windows 7上,千里馬版本:5.36.1 Lisp:SBCL 1.2.7

回答

2

我想你試圖捕獲tex到輸出文件。如果是這樣,這裏有一些其他的方法來做到這一點:

tex (expr, destination); 

其中destination是一個文件名(附加)或流,如openaopenw創建和close關閉。順便說一句,destination可能是false,在這種情況下tex返回一個字符串。

with_stdout (destination, tex (expr)); 

其中再次destination是文件名(其被附加或打一頓,如由全局標誌file_output_append確定)或流。

with_stdout可能是有用的,如果你想混合一些不是由tex產生的輸出,例如print("% some commentary");