Je souhaite lire le contenu d'un fichier dans une liste. Certaines de mes tentatives à ce jour ont été -Comment puis-je lire le contenu d'un fichier dans une liste en Lisp?
(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))
Aucune de ces tentatives. Quelqu'un peut-il me dire un moyen? Ou encore mieux - comment mettre tout le contenu dans un tableau?
(avec-fichier ouvert (f nom) Pourquoi avez-vous un f avant le nom de fichier là-bas? que fait la ligne de collection? Et comment cela collabore-t-il avec la ligne à la fin? – Sterling
'with-open-file' ouvre le fichier appelé' filename' et associe le flux à 'f'. 'collectioning 'recueille les différentes valeurs de' line' dans une liste, jusqu'à ce que 'while' soit' nil'. Le Common Lisp HyperSpec et le Common Lisp pratique sont vos amis! –
En d'autres termes, 'with-open-file' fait tout le travail de' open' et 'close' et le' let'. –