0
我正在創建一個將列添加到平面文件的函數。到目前爲止,我有:在文件中寫入行尾
(defun ff-from-vector (vec dir file)
(with-open-file (ff-vec-str (make-pathname :name file
:directory dir)
:direction :output
:if-exists :overwrite)
(dotimes (i (length vec))
(format ff-vec-str "~A~%" (svref vec i)))))
(defun vec-from-1col-ff (dir file)
(let ((col (make-array `(,(ff-rows dir file)))))
(with-open-file (ff-col-str (make-pathname :name file
:directory dir)
:direction :input)
(do ((line (read-line ff-col-str nil 'eof)
(read-line ff-col-str nil 'eof))
(i 0 (incf i)))
((eql line 'eof))
(setf (aref col i) (read-from-string line))))
col))
(defun add-col-to-ff (col-dir col-file ff-dir ff-file)
(ff-from-vector (vec-from-1col-ff col-dir col-file)
ff-dir
ff-file))
然而,當我從文件中讀取:
2
2
2
2
並嘗試覆蓋文件:
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
我得到:
2
2
2
2
1 1 1 1
1 1 1 1
1 1 1 1
1 1 1 1
本質上我的問題是:什麼函數或代碼mo將輸出文件中行的格式設置爲結尾?所以,我可以得到:
1 1 1 1 2
1 1 1 1 2
1 1 1 1 2
1 1 1 1 2
您應該使用文本編輯器使用自動縮進。上面的代碼看起來像手動縮進 - 以一種令人困惑的方式。 – 2013-02-15 12:55:08