Ich möchte den Inhalt einer Datei in eine Liste einlesen. Einige meiner bisherigen Versuche waren -Wie kann ich den Inhalt einer Datei in Lisp in einer Liste lesen?
(defun get-file (filename)
(let ((x (open filename)))
(when x
(loop for line = (read-line x nil)
while line do (list line)))
(close x)))
(defun get-file (filename)
(let ((x (open filename :if-does-not-exist nil)) (contents (list nil)))
(when x
(loop for line = (read-line x nil)
while line do (cons contents line)))
(close x) contents))
(defun get-file (filename)
(let ((x (open filename :if-does-not-exist nil)) (contents nil))
(when x
(loop for line = (read-line x nil)
while line do (append contents line)))
(close x) contents))
Keiner von diesen funktioniert. Kann mir jemand einen Weg sagen? Oder noch besser - wie man alle Inhalte in ein Array bringt?
(mit-open-Datei (f Dateiname) Warum haben Sie eine f vor Dateinamen dort? Was macht eine Sammelleitung? Und wie arbeitet das mit der Linie am Ende zusammen? – Sterling
'with-open-file' öffnet die Datei' filename' und verknüpft den Stream mit 'f'. "Sammeln" sammelt die verschiedenen Werte von "Zeile" in einer Liste, bis die "Weile" "Null" ist. Die Common Lisp HyperSpec und Practical Common Lisp sind deine Freunde! –
Mit anderen Worten, 'with-open-file' erledigt alle Arbeiten von' open' und 'close' und die' let'. –