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

Langage Perl Discussion :

Codage en bytes


Sujet :

Langage Perl

  1. #1
    Membre régulier Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Points : 81
    Points
    81
    Par défaut Codage en bytes
    Bonjour,

    je dois récupérer des messages et les decoder. Le header est composé de 5 octets:
    - le type sur un octet
    - l'id sur deux octets
    - la length sur deux octets.

    Voila j'essaye d'utiliser la fonction unpack mais je n'y arrive pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    #pour l'id par exemple
    $expr = substr($msg,1,2); # position 1 et sur 2 octets
    $transac_id = unpack("c",$expr);
    Quelqn'un peut il m'aider et me dire ce qui ne va pas ?
    Merci beaucoup !

  2. #2
    Membre régulier Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Points : 81
    Points
    81
    Par défaut
    J'ai trouvé (grace au C)!
    le unpack() renvoie une liste :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    #pour l'id par exemple
    $expr = substr($msg,1,2); # position 1 et sur 2 octets
    @transac_id = unpack("c2",$expr);
    my $id = $transac_id[0]*256 + transac_id[1];
    Voila

  3. #3
    Expert éminent
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Points : 8 586
    Points
    8 586
    Par défaut
    A quoi bon utiliser unpack() si c'est pour faire la même chose que ord()...
    Plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    my ($type, $id, $len) = unpack( 'ann', $msg );
    Cf "perldoc -f pack" pour la description des templates.
    --
    Jedaï

  4. #4
    Membre régulier Avatar de Joccy
    Profil pro
    Inscrit en
    Août 2007
    Messages
    153
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 153
    Points : 81
    Points
    81
    Par défaut
    merci

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

Discussions similaires

  1. Codage de deux valeurs dans un byte
    Par minnesota dans le forum Algorithmes et structures de données
    Réponses: 4
    Dernier message: 22/08/2010, 13h33
  2. codage des floats sur 4 bytes
    Par pfeuh dans le forum Débuter
    Réponses: 5
    Dernier message: 27/01/2010, 15h30
  3. [C#] Conversion d'un byte[] en byte *
    Par karsh dans le forum Windows Forms
    Réponses: 6
    Dernier message: 08/12/2004, 10h53
  4. [Accents - XML] Problème de codage non supporté !!
    Par Smortex dans le forum Composants VCL
    Réponses: 6
    Dernier message: 24/11/2002, 11h00
  5. codage objet
    Par charly dans le forum Algorithmes et structures de données
    Réponses: 18
    Dernier message: 22/08/2002, 16h49

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