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 :

URGENT : problème avec nouvelle version allegro common lisp


Sujet :

Lisp

  1. #1
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 50
    Points
    50
    Par défaut URGENT : problème avec nouvelle version allegro common lisp
    Bonsoir,

    J'ai un soucis qui m'empêche de travailler un projet, qui marchait pourtant très bien avec l'ancienne version d'allegro common lisp.

    Voici ce que je faisais pour commencer mon programme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    (print "Indiquez votre jour de naissance :")
    (setq jour (read))
    (print "Indiquez votre mois de naissance :")
    (setq mois (read))
    (print "Indiquez votre année de naissance :")
    (setq annee (read))
    Les (read) ne fonctionnent pas du tout.
    Je rentre des valeurs et je clique sur entrée mais rien ne se passe.
    Ensuite, en appuyant une fois de plus sur entrée, j'ai une erreur qui s'affiche : NIL n'est pas de type caractère. Le NIl en question correspond à mon second appui sur entrée.

    Sur l'ancienne version, 8.2, tout fonctionnait très bien et le programme marchait dans sa globalité. Ici, avec la dernière version, la deuxième ligne ne marche même pas =(

    Que se passe-t-il ? Du jour au lendemain, tous mes programmes se servant de la fonction read ne fonctionnent plus. Pourquoi ?

    S'il n'y a pas d'explication, existe-t-il d'autres fonctions récupérant une chaine de caractère (nombre ou lettres) ? Je suis un peu paniqué car je ne trouve pas de solutions pour refaire fonctionner mes programmes =/

    Je vous remercie par avance pour votre aide !
    Je cherche partout pour arranger les choses mais je ne trouve toujours rien et ça m'inquiète...!

  2. #2
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    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 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Bonjour,

    N'ayant pas d'ACL sous la main, je ne peux pas faire de tests. Désolé

    si tu as plusieurs occurrences d'un même groupe de lignes de code (probablement issues de copier/coller (Bouh! Pas bien! )), je te conseille fortement de le factoriser!
    Ceci est d'autant plus valable si ce groupe est "proche" des fonctions système, comme ici, avec les entrées sorties.
    Cela te permettra aussi, entre autres, de simplifier la portabilité (si tu dois passer d'une version à une autre, voire d'une implémentation à une autre).
    Je te conseille donc de transformer ton code en (merci d'utiliser la balise 'CODE' ):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (setq jour (my-read "Indiquez votre jour de naissance :"))
    (setq mois (my-read "Indiquez votre mois de naissance :"))
    (setq annee (my-read "Indiquez votre année de naissance :"))
    Ensuite, il ne te reste plus (sic!) qu'à mettre au point ton reader personnel...
    L'ancienne version était:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (defun my-read (prompt)
        (print prompt)
        (read))
    En ce qui concerne les symptômes que tu décris, il faudrait être plus précis. Que produit l'exécution de:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (setq a (my-read "A:") b (my-read "B:"))
    (print a)
    (print b)
    Peut-être y a-t-il un problème de flush?
    Peut-être est-ce un bug? Normalement, la fonction 'read' devrait bien lire une s-expr dans le flux d'entrée standard.
    ACL a-t-il une fonction 'readline' ou read-line' ?

    J'espère aussi que tu as structuré tes programmes en séparant la partie interactive de la partie traitement:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    ;;; Usage: (traitement-date <jour> <mois> <an>)
    ;;; ex: (traitement-date 19 3 1990)
    (defun traitement-date (jour mois an) (blah-blah))
     
    ;;; Usage: (traitement-date-interactif)
    (defun traitement-date-interactif ()
        (traitement-date
            (my-read "Indiquez votre jour de naissance :")
            (my-read "Indiquez votre mois de naissance :")
            (my-read "Indiquez votre année de naissance :")))
    Bonne investigation!

  3. #3
    Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Avril 2012
    Messages
    59
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2012
    Messages : 59
    Points : 50
    Points
    50
    Par défaut Re:
    Merci pour votre réponse.

    Je comprends ce que vous voulez dire et j'ai bien séparé les fonctions de traitement dans tous les cas.

    Je ne sais pas d'où peut venir le problème avec la fonction read. Une énigme.

    J'ai changé de logiciel, et ai choisi LispWorks sur lequel mon code fonctionne sans problème.

Discussions similaires

  1. Problème avec nouvelle version
    Par climsoldev dans le forum IGN API Géoportail
    Réponses: 2
    Dernier message: 04/06/2014, 14h40
  2. Problème avec nouvelle version de Chrome
    Par rikidi dans le forum ASP.NET
    Réponses: 2
    Dernier message: 10/02/2011, 17h32
  3. Problème avec nouvelle version de g++
    Par ValyGator dans le forum Applications et environnements graphiques
    Réponses: 7
    Dernier message: 31/03/2009, 18h22
  4. Problème avec les versions nouvelle Kettle (après 2.5)
    Par Ghenadie dans le forum kettle/PDI
    Réponses: 6
    Dernier message: 20/02/2009, 11h15

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