たてたてよこよこまるかいてちょん

組み込み関連の情報を共有するためのブログです

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)))
記事のLicense このブログの記事は特に断りのない限り、引用部分を除いて、以下の CC-BY 4.0でライセンスします。 https://creativecommons.org/licenses/by/4.0/deed.ja ただし、ブログ内にあるコードは、特に断りのない限り、CC-BY 4.0またはMITLicense で利用できるものとします。