객체 내에 종료되고, 그래서 코드 작성 :입력 스트림은 내가 플랫 파일의 행 수를 계산하려면
*** - READ: input stream
#<INPUT BUFFERED FILE-STREAM CHARACTER #P"/home/lambda/Documents/flatfile"
@4>
ends within an object
월 :
(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)))))
그러나 나는 오류를 문제가 무엇인지 묻습니다. 나는 행 수를 세어 보았습니다. 이 작업은 괜찮습니다.
참고 : 여기 기능을 테스트하는 데 사용되는 플랫 파일의 내용입니다 : 당신은 그때 내가 더 현학적 인 경우 물론 지금
2 3 4 6 2
1 2 3 1 2
2 3 4 1 6
대단히 감사합니다. 경로 이름을 별도로 처리해야합니다. – category
파일과 디렉토리를'ff-rows'에 전달하는 것이 더 깔끔해 보입니다. 사용자가 자연스럽게 그러한 함수에 전달할 것이기 때문입니다. 그러나 이것이 잘못된 설계 인 것을 볼 수 있습니다.내가 잘못된 디자인처럼 보이는 경로 이름을 생성하도록 사용자에게 요청하면. 그래서 pathname을 만들고'ff-rows'를 실행하는 함수를 정의 할 수 있습니다. 그런 다음 다른 함수에서 pathname 컴포넌트를 처리 할 차례입니다. – category