IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lisp Discussion :

Créer liste depuis fichier


Sujet :

Lisp

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Étudiant
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut Créer liste depuis fichier
    Bonjour,

    J'ai besoin d'aide pour une fonction lisp.

    Cette fonction doit lire dans un fichier contenant des codes de caractères (un code par ligne) : voir fichier
    Puis construire une liste de ces codes.

    Voici ce que j'ai pour le moment mais la fonction renvoie nil : ici

    Ainsi que la fonction que j'ai créé en Python pour m'aider :

    Si quelqu'un sait ce qui cloche dans ma fonction cela me permettrait d'avancer un peu.

    Merci d'avance !!

    Bon en fait c'est bon j'ai fait ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (defun lire-code-en-liste (&aux (liste nil))
      (setq alpha_code (open "alpha_code.txt" :direction :input :if-does-not-exist :error))
      (loop
        (cond
          ((not (setq ligne (read-line alpha_code nil nil))) (return)) )
        (push (read-from-string ligne) liste) )
      (close alpha_code)
      (print (reverse liste)) )
    Qui ne modifie pas la liste. Ou bien comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    (defun lire-code-en-liste (&aux (liste nil))
      (setq alpha_code (open "alpha_code.txt" :direction :input :if-does-not-exist :error))
      (loop
        (cond
          ((not (setq ligne (read-line alpha_code nil nil))) (return)) )
        (setq liste (append liste (list (read-from-string ligne)))) )
      (close alpha_code)
      (print liste) )

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par MilkyMars Voir le message
    Bon en fait c'est bon j'ai fait ainsi :
    Vu que 'liste' est une variable locale que tu construis toi-même, tu peux sans aucun risque la modifier physiquement (avec nreverse ou nconc).

    Prends l'habitude de déclarer tes variables locales.

    Pour avoir une fonction plus générale:
    - passe-lui les données en paramètre,
    - imprime plutôt au retour que dans la fonction.

    Code lisp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (defun lire-code-en-liste (file &aux (liste nil))
      (let ((alpha_code (open file :direction :input :if-does-not-exist :error))
            ligne)
        (while (setq ligne (read-line alpha_code nil nil))
          (push (read-from-string ligne) liste) )
        (close alpha_code)
        (nreverse liste) ))
     
    (print (lire-code-en-liste "alpha_code.txt"))

    Ou bien:

    Code lisp : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    (defun lire-code-en-liste (file &aux (liste nil))
      (let ((alpha_code (open file :direction :input :if-does-not-exist :error))
            ligne)
        (while (setq ligne (read-line alpha_code nil nil))
          (setq liste (nconc liste (list (read-from-string ligne)))) )
        (close alpha_code)
        liste ))
     
    (print (lire-code-en-liste "alpha_code.txt"))

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Batch] Créer liste de fichiers-dossiers modifés depuis ..
    Par sechanbask dans le forum Scripts/Batch
    Réponses: 0
    Dernier message: 17/05/2009, 15h05
  2. Créer une liste de fichiers 'activable'
    Par Naga2 dans le forum Composants VCL
    Réponses: 5
    Dernier message: 28/10/2007, 18h36
  3. Créer une variable d'environnement à partir d'une liste de fichier
    Par ddams dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 23/02/2007, 21h03
  4. Comment créer un bouton FICHIER(liste déroulante)
    Par vantoff dans le forum C++Builder
    Réponses: 10
    Dernier message: 20/07/2006, 10h08
  5. Réponses: 2
    Dernier message: 03/07/2006, 21h14

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo