Bonjour désolé de revenir sur ce forum mais je rencontre un nouveau problème dans la lecture d'un fichier. J'ai un fichier de ce type:
--------------------------
- grille : facile
--------------------------
4 4
#1#3
#3#2
1###
2#44
mon but est le suivant: sauter les ligne qui commencent par un "-" ainsi que la ligne 4 4 qui permet de connaitre la hauteur et la largeur de la grille. Voilà mon code pour lire le fichier simplifié suivant:
4 4
#1#3
#3#2
1###
2#44
sinon pour sauter les lignes qui commencent par un tiret comme suit
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
18
19
20 (with-open-file (stream "grille.txt") (print (read-char stream nil)) (peek-char t stream nil) (print (read-char stream nil)) (print (read-line stream nil)) (print (read-line stream nil)) (print (read-line stream nil))) """La partie suivant n'est pas correctement fonctionnelle""" (with-open-file (stream "grille.txt") (defparameter x (read stream nil)) (defparameter y (read stream nil)) (read-line stream nil) """Première ligne lue avec succès, ça se gâte après""" """Idée : utiliser read-line, qui renvoie une chaine de caractères (plutôt que read-char qui renvoie un char ou read qui renvoie un objet) et travailler dessus)"""
--------------------------
- title : that one is easy
--------------------------
4 4
comme vous voyez j'ai un problème : je ne sais pas comment faire pour ecrire la condition de passage a la ligne (j'ai mis "rien")
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 (defun lecture () (with-open-file (str "lol.txt") (loop while (not(null ligne)) do (let (a (read-line str nil)) (if((string-equal "-" (car a ))) "Rien" (print a))))))
cordialement
Partager