Lecture d'un fichier textuel en lisp
Bonjour à tous,
Je suis nouveau sur lisp and je suis confronté à plusieurs problèmes. J'essaie de lire un fichier textuel et de sauvegarder son contenu dans une liste grâce à un programme lisp mais cela ne marche pas.
Apparemment, la partie loop ne fonctionne pas.
Pouvez-vous m'aider ou me dire ce qui est faux dans ce script?
Merci d'avance pour votre aide.
Code lisp:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
(defun parser ()
;Initialisation de la liste dico
(setq dico '())
;Initialisation d'une liste ligne
(setq ligne '(hello))
;Lecture du fichier dico
(with-open-file (stream "./dico.txt"))
(loop while (not (null ligne))
(setq ligne (read-line str))
(setq dico (cons ligne dico))
)
) |
Code:
1 2 3 4 5
|
MotCle01 MotResultat01
MotCle02 MotResultat02
MotCle03 MotResultat03
MotCle04 MotResultat04 |
Lecture d'un fichier textuel en lisp
Bonsoir,
Il me disait que j'avais une erreur de syntaxe mais il s'agit de la ligne juste après loop, il manque le 'do'
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
|
(defun parser ()
;Initialisation de la liste dico
(setq dico '())
;Initialisation d'une liste ligne
(setq ligne '(hello))
;Lecture du fichier dico
(with-open-file (stream "./dico.txt"))
(loop while (not (null ligne))
(setq ligne (read-line str))
(setq dico (cons ligne dico))
)
) |
++++++++++++++++
Ce que je ne comprends pas c'est que malgré le fait que j'ai ajouté la ligne format dans ma fonction parser, rien ne s'affiche.
Pour la 2e fonction, ce que je comprends c'est que je n'ai pas fait le nécessaire pour faire passer un paramètre à la fonction.
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
|
(defun parser ()
;Initialisation de la liste dico
(setq dico '())
;Initialisation d'une liste ligne
(setq ligne '(hello))
;Lecture du fichier dico
(with-open-file (stream "./dico.txt"))
(loop while (not (nil ligne))
do (setq ligne (read-line stream))
(format t "Field 01: ~S~% and associated Field 02: ~S~%"
car(ligne) cdr(ligne))
(setq dico (cons ligne dico)))
)
(defun display(MyListe)
(cond
((eq MyListe nil) nil)
;Parcours de la base
(listp (car MyListe) (cdr MyListe))
;Affiche le car et le cdr de MyListe
(print (car MyListe) (cdr MyListe)))
) |