bonjour,
je suis complètement bloqué depuis plusieurs jours sur un exercice.
Il s'agit de découper un fichier nommé alphabet.txt qui contient tous les caractères utilisés en français sous différentes représentation en 2 fichiers , l'un comprenant les codes numériques correspondants et l'autre les caractères en représentation lisp.
voici mon code :
le problème est sur la gestion de fin de fichier.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 (defun alphabet (fichier) (setq f (open fichier :direction :input :if-does-not-exist :error)) (setq code "") (setq char "") (loop (cond ((null code)) ) (setq code (open "alphabet_code.txt" :direction :output :if-does-not-exist :create :if-exists :append)) (prin1 (read-from-string (read-line f nil nil) nil nil) code) (terpri code) (close code) ) (close f) (setq f (open fichier :direction :input :if-does-not-exist :error)) (loop (cond ((null char)) ) (setq char (open "alphabet_char.txt" :direction :output :if-does-not-exist :create :if-exists :append)) (prin1 (code-char (read-from-string (read-line f nil nil) nil nil)) char) (terpri char) (close char) ) (close f) )
le premier fichier (alphabet_code.txt) se fait correctement mais l'erreur qui est générée a la fin de la première boucle empêche la suivante de se faire.
les options pour gérer ceci dans les fonctions read-from-string et read-line semblent inactives.
j'ai essayé différentes combinaisons avec nil dans l'expression (read-from-string (read-line f nil nil) nil nil) , mais rien n'y fait.
Suivant ces combinaisons , soit c'est une erreur qui dit que le stream d'entrée est épuisé soit que nil n'est pas string
Pouvez vous n'aider car je ne peut plus avancer.
merci






Répondre avec citation



Partager