なんだこれは

はてなダイアリーから移転しました。

MS Excel のCSVを Common Lisp の Clozure CLで開くためのメモ2

前にも、 Common Lisp の Clozure CL で MS ExcelCSVファイルをひらく方法を書いた。

;;;; load by quicklisp
(ql:quickload :fare-csv)

;;;; external format for csv file of MS EXCEL/WINDOWS
(setf ccl:*default-external-format* (ccl:make-external-format
				     :character-encoding :cp932
				     :line-termination :dos))
(defvar *table* (fare-csv:read-csv-file "foobar.csv"))

しかし、Windows で実行したときにファイルサイズが多きかったためか、メモリ不足になってしまった。なんということだ。
そこで、いろいろ調べた結果、 csv-parser でもできるとの情報があったので、 csv-parser で実行した。こちらではメモリ不足にはなりませんでした。

;;;; load by quicklisp
(ql:quickload :csv-parser)

;;;; external format for csv file of MS EXCEL/WINDOWS
(setf ccl:*default-external-format* (ccl:make-external-format
				     :character-encoding :cp932
				     :line-termination :dos))

(defvar *table* (with-open-file (csv "sample.csv")
	   (loop for line = (csv-parser:read-csv-line csv)
		while line
		collect line)))