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

Python Discussion :

probleme avec chr()


Sujet :

Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut probleme avec chr()
    bonjour,
    je réceptionne des caractères ascii (codage decimal) depuis un port série puis je veux les transformer en caractère avec la fonction chr(). Le programme fonctionne correctement pour un nombre faible de valeurs et arrivé un certain nombre (au dela de 155 octet transféré) j'ai un message d'erreur: chr() out of range (256)
    si quelqu'un a une idée pour résoudre le probleme je suis preneur
    merci
    Jérôme

  2. #2
    Membre confirmé
    Inscrit en
    Mai 2007
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 40

    Informations forums :
    Inscription : Mai 2007
    Messages : 45
    Par défaut
    t sur que les caractères ne sont que de l'ascii?

  3. #3
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut
    oui certain c'est la meme trame qui est répétée n fois pour la réception d'une trame ca fonctionne mais pas au dela.

  4. #4
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par spiro13
    bonjour,
    je réceptionne des caractères ascii (codage decimal) depuis un port série puis je veux les transformer en caractère avec la fonction chr(). Le programme fonctionne correctement pour un nombre faible de valeurs et arrivé un certain nombre (au dela de 155 octet transféré) j'ai un message d'erreur: chr() out of range (256)
    si quelqu'un a une idée pour résoudre le probleme je suis preneur
    merci
    Jérôme
    Hello,

    Tout simplement, que la fonction chr() attend un argument compris entre 0 et 255 (dans range(256)). Dans le cas contraire, chr() génère une exception ValueError.

    Voilà la raison


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    try:
        print chr(256)
    except ValueError:
        print "Erreur : valeur non valide"

  5. #5
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864

  6. #6
    Nouveau membre du Club
    Inscrit en
    Avril 2007
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Avril 2007
    Messages : 6
    Par défaut
    merci pour ces informations mais
    ma question est plutot sur pourquoi un caractère qui au départ est entre 0 et 256 est interpréter comme étant en dehors de cet intervalle. J'avais bien compris le message d'erreur mais je sais aussi que ce que j'envoi est bien dans l'intervalle demandé. D'ou mon problème.

  7. #7
    Expert confirmé
    Avatar de Guigui_
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2002
    Messages
    1 864
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Enseignement

    Informations forums :
    Inscription : Août 2002
    Messages : 1 864
    Par défaut
    affiche chaque caractère que tu récupères avec le port série avant d'essayer d'en prendre le chr et tu verras sur quel caractère ca plante

  8. #8
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par spiro13
    merci pour ces informations mais
    ma question est plutot sur pourquoi un caractère qui au départ est entre 0 et 256 est interpréter comme étant en dehors de cet intervalle. J'avais bien compris le message d'erreur mais je sais aussi que ce que j'envoi est bien dans l'intervalle demandé. D'ou mon problème.
    Ah ok, au temps pour moi
    Tu as donc bien vérifié que les caractères sont bons ? Le problème intervient toujours au bout du même nombre de caractères ou c'est aléatoire ?

  9. #9
    Membre Expert
    Avatar de DelphiManiac
    Homme Profil pro
    Homme à tout faire
    Inscrit en
    Mars 2002
    Messages
    1 147
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Homme à tout faire
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 147
    Par défaut
    Un caractère sur 8 bits est dans l'intervalle 0:255 et pas 0:256.

    Si tu recois et que tu passes la valeur 256, c'est surement que tu ne lis pas des octets.

Discussions similaires

  1. Probleme avec la copie des surfaces
    Par Black_Daimond dans le forum DirectX
    Réponses: 3
    Dernier message: 09/01/2003, 10h33
  2. Problèmes avec le filtrage des ip
    Par berry dans le forum Réseau
    Réponses: 9
    Dernier message: 30/12/2002, 07h51
  3. probleme avec la touche F10
    Par b.grellee dans le forum Langage
    Réponses: 2
    Dernier message: 15/09/2002, 22h04
  4. Probleme avec fseek
    Par Bjorn dans le forum C
    Réponses: 5
    Dernier message: 04/08/2002, 07h17
  5. [Kylix] probleme avec un imagelist
    Par NicoLinux dans le forum EDI
    Réponses: 4
    Dernier message: 08/06/2002, 23h06

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