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

 C Discussion :

Affichage sous forme de trame


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut Affichage sous forme de trame
    Dans le cadre d'un projet,je récupère plusieurs valeurs en Hexa mais pour mieux les visualiser je voudrai savoir comment faire pour les afficher sous une forme de trame de 7octet

    Par exemple

    0FD0D5C8000280 devient 0F D0 D5 C8 00 02 80

    Merci

  2. #2
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Un peu plus de détails serait utile !

    Par exemple : ta trame arrive dans quelle type de variable ?
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  3. #3
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut
    Ce qu'il y a c'est que j'utilise un logiciel qui s'appelle AutoHotKey,il a une syntaxe un peu spécial.

    Mes données sont toutes des entiers que j'ai convertis en Hex pour mes besoins.

    Moi ce que je veux c'est un exemple en C pour que je puisse l'adapter

  4. #4
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Ton logiciel te sort un fichier texte que tu veux lire ?...

    Je ne comprends toujours pas quel est le format en entrée... des caractères (qui sont des chiffres et de lettres) ou un int que tu printf ?
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  5. #5
    Expert éminent

    Femme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2007
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France, Essonne (Île de France)

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 5 202
    Par défaut
    Bonjour à toi,
    La question était, quel argument prends ta fonction toHex(…)?
    un const char*, un long, une struct, ou encore un const long[]?

    Montre-nous le code de ton toHex(), ce sera tout de meme plus simple

  6. #6
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut
    Exactement,je crée un fichier texte.
    en entrée je n'ai que des chiffres(par exemple:Les coordonnées XY de mon écran)

  7. #7
    Membre Expert
    Avatar de Metalman
    Homme Profil pro
    Enseignant-Chercheur
    Inscrit en
    Juin 2005
    Messages
    1 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Enseignant-Chercheur
    Secteur : Enseignement

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 049
    Par défaut
    Pourrais-tu copier/coller quelques lignes de ton fichier texte ?

    L'algorithme serait assez simple :
    - ouverture de fichier en entrée (en lecture), ouverture de fichier en sortie (en écriture)
    - lire 2 caractères, insérer un espace, etc... tant qu'il n'y a pas de '\n' ou de fin de fichier
    - si fin de fichier, on ferme les fd, sinon on reprend la lecture précédente
    --
    Metalman !

    Attendez 5 mins après mes posts... les EDIT vont vite avec moi...
    Les flags de la vie : gcc -W -Wall -Werror -ansi -pedantic mes_sources.c
    gcc -Wall -Wextra -Werror -std=c99 -pedantic mes_sources.c
    (ANSI retire quelques fonctions comme strdup...)
    L'outil de la vie : valgrind --show-reachable=yes --leak-check=full ./mon_programme
    Et s'assurer que la logique est bonne "aussi" !

    Ma page Developpez.net

  8. #8
    Membre éclairé Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par défaut
    OK, OK, mais tu as des chiffres sous quelle forme ?
    C'est une chaîne de caractères se présentant comme une suite de chiffres hexadécimaux : "078F3E44236DCC78312A9A88B3" ?
    C'est un tableau d'entiers : { 0x07 ; 0x8F ; 0x3E ; ... } ?

  9. #9
    Membre éclairé Avatar de Ngork
    Homme Profil pro
    Barbare IT
    Inscrit en
    Avril 2009
    Messages
    160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Barbare IT
    Secteur : Finance

    Informations forums :
    Inscription : Avril 2009
    Messages : 160
    Par défaut
    Si chaine contient quelque chose comme "078F3E44236DCC78312A9A88B3", on peut imaginer une fonction comme celle-ci (codage brut) :

    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
    void formater_octets(char *chaine)
    {
      char *ptr=chaine;
      int compteur=0;
     
      while (ptr[0] && ptr[1])
        {
          compteur=0;
          while (ptr[0] && ptr[1] && compteur<7)
            {
              printf("%.2s ",ptr);
              ptr+=2;
              compteur++;
            }
          printf("\n");
        }
    }

  10. #10
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut
    ça marche très bien Ngork,c'est ce que je cherchais.
    Il me reste à adapter cela à AHK
    Merci

  11. #11
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut
    La solution au cas où quelqu'un chercherait un jour:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    var = 03D01FC83C0980          ;exemple de trame
    msgbox % formater_octets(var)          ;affichage 
    return
     
    formater_octets(var)
    {
      output := ""
      loop, % strlen(var) // 2
      output .= substr(var, 2*A_Index-1, 2) " "
      return substr(output,1,strlen(output)-1)
    }

  12. #12
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut
    Ma fonction est la suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    tohex_3(num)
    {
      VarSetCapacity(buf, 40)
     
      if num is integer		;//Cas où j'ai entier
         DllCall("wsprintf", "str", buf, "str", "%03X", "int64", num)  
     
      if num is float
         DllCall("wsprintf", "str", buf, "str", "%03X", "float", num)
      return buf
    }
    Le 3 veut dire que j'affiche sur un octet et demi;exemple 020

  13. #13
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut
    Pourrais-tu copier/coller quelques lignes de ton fichier texte ?
    Bien sur



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    0.3590      2    F        Rx   d 7  1A50B5C8000280
    0.9060      2    F        Rx   d 7  1D701FC804C080
    1.7180      2    F        Rx   d 7  0270AEC810FD80
    2.4060      2    F        Rx   d 7  1A4169C81A5880

  14. #14
    Membre averti
    Homme Profil pro
    Inscrit en
    Août 2012
    Messages
    12
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2012
    Messages : 12
    Par défaut
    OK, OK, mais tu as des chiffres sous quelle forme ?
    Cette trame circule 5 informations de tailles différentes.Si je met un espace lors de l'affichage j'aurai 1A5 0B5 C8 0002 80 et c'est encore moins évident

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

Discussions similaires

  1. affichage sous forme d'arbre
    Par bruman dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 05/09/2008, 13h14
  2. Pb Affichage Sous form après Maj form
    Par Maxsen dans le forum VBA Access
    Réponses: 5
    Dernier message: 28/02/2008, 12h54
  3. [Débutant] Récupération de données et affichage sous forme de tableau
    Par Samrenfou dans le forum Interfaces Graphiques en Java
    Réponses: 3
    Dernier message: 17/04/2007, 10h18
  4. Affichage sous forme de colonnes
    Par harris_macken dans le forum MATLAB
    Réponses: 4
    Dernier message: 02/04/2007, 15h02
  5. [MySQL] Problème d'affichage sous forme de tableau
    Par mogway95 dans le forum PHP & Base de données
    Réponses: 6
    Dernier message: 01/03/2006, 16h31

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