2015-12-08 63 views

回答

9

您只需打開該文件使用with-open-file閱讀,然後使用功能read往往你希望或像陣列一樣頻繁。每個read都會返回一個數組。使用loop你可以將收集到它們列表中。

基本上是這樣的:

(with-open-file (s filename) 
    (let ((*read-eval* nil)) 
    (loop with eof = '#:eof 
      for object = (read s nil eof) 
      until (eq object eof) 
      collect object))) 

還要注意不要緊每個陣列是否是自己的路線。如果它們在一條線上,它仍然可以工作。 A 換行之間的表達式只是空白爲Lisp 閱讀器

+1

謝謝!那麼容易,我想:) –

+3

@LidiaFreitas:這是因爲該數組已打印在Common Lisp語法中。 :-) –

+1

...並且在從不受信任的源讀取之前,總是將'* read-eval *'綁定到'nil'。 – Svante