フラットファイルの行数を数えたいので、次のコードを記述しました。
(defun ff-rows (dir file)
(with-open-file (str (make-pathname :name file
:directory dir)
:direction :input)
(let ((rownum 0))
(do ((line (read-line str file nil 'eof)
(read-line str file nil 'eof)))
((eql line 'eof) rownum)
(incf rownum )))))
ただし、エラーが発生します。
*** - READ: input stream
#<INPUT BUFFERED FILE-STREAM CHARACTER #P"/home/lambda/Documents/flatfile"
@4>
ends within an object
ここで何が問題なのか聞いてもいいですか?行を数えてみました。この操作は問題ありません。
注:関数のテストに使用したフラットファイルの内容は次のとおりです。
2 3 4 6 2
1 2 3 1 2
2 3 4 1 6