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

MFC Discussion :

Saisie en Hexa


Sujet :

MFC

  1. #1
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Par défaut Saisie en Hexa
    Bonjour,
    Comment faire pour saisir à partir du clavier des caractères en representation Hexadecimale? exemple: entrer au clavier l'adresse 0x3FFF0503.

  2. #2
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    salut,
    je dirai en faisant un edit specialisé et en filtrant les caracteres en dehors de la plage 0.9 et A.F
    exemple faq de filtrage : http://c.developpez.com/faq/vc/?page...EditFilterChar

  3. #3
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Par défaut
    Citation Envoyé par farscape
    salut,
    je dirai en faisant un edit specialisé et en filtrant les caracteres en dehors de la plage 0.9 et A.F
    exemple faq de filtrage : http://c.developpez.com/faq/vc/?page...EditFilterChar
    ça voudrait dire que je dois tester un à un chaque caractère entré, et en déduire les bytes en hex?

  4. #4
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    si ton probleme est de saisir en hexa il suffit de filtrer les caracteres,
    la deduction de la valeur saisie peut se faire a la sortie de l'edit : perte de focus
    touche entrée etc..

  5. #5
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Par défaut
    Citation Envoyé par farscape
    si ton probleme est de saisir en hexa il suffit de filtrer les caracteres,
    la deduction de la valeur saisie peut se faire a la sortie de l'edit : perte de focus
    touche entrée etc..
    Excusez moi de m'exprimer mal. Je m'explique.
    dans une CEdit j'écris ceci à partir du clavier: 0FFF5EDC.
    Je voudrais stocker ces 4 bytes dans la variable suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char Address[3];

  6. #6
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    Citation Envoyé par zantar
    Citation Envoyé par farscape
    si ton probleme est de saisir en hexa il suffit de filtrer les caracteres,
    la deduction de la valeur saisie peut se faire a la sortie de l'edit : perte de focus
    touche entrée etc..
    Excusez moi de m'exprimer mal. Je m'explique.
    dans une CEdit j'écris ceci à partir du clavier: 0FFF5EDC.
    Je voudrais stocker ces 4 bytes dans la variable suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char Address[3];
    tu peux m'expliquer comment tu comptes noter 0FFF5EDC dans 3 octets ?
    tu veux un representation ascii ?
    c'est a dire une chaine contenant "0FFF5EDC" ? ou stocker la valeur numerique ?
    soit plus explicite .

  7. #7
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Par défaut
    Citation Envoyé par farscape
    Citation Envoyé par zantar
    Citation Envoyé par farscape
    si ton probleme est de saisir en hexa il suffit de filtrer les caracteres,
    la deduction de la valeur saisie peut se faire a la sortie de l'edit : perte de focus
    touche entrée etc..
    Excusez moi de m'exprimer mal. Je m'explique.
    dans une CEdit j'écris ceci à partir du clavier: 0FFF5EDC.
    Je voudrais stocker ces 4 bytes dans la variable suivante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char Address[3];
    tu peux m'expliquer comment tu comptes noter 0FFF5EDC dans 3 octets ?
    tu veux un representation ascii ?
    c'est a dire une chaine contenant "0FFF5EDC" ? ou stocker la valeur numerique ?
    soit plus explicite .
    Excusez moi c'est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    unsigned char Address[4];
    et je voudrais stocker la valeur numerique.
    C'est une application qui saisit au clavier une addresse sur 4 bytes et l'envoie par le port série à un microcontrolleur.

  8. #8
    Rédacteur
    Avatar de farscape
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2003
    Messages
    9 055
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2003
    Messages : 9 055
    Par défaut
    re,
    pas de pb c'est juste pour etre sur que l'on parle de la meme chose !,
    conversion d'une chaine hexa en numerique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char   *stopstring;
     /* Convert the string: */
    int ul = strtoul("0FFF5EDC" , &stopstring, 16 );
    il suffira d'envoyer &ul sur 4 octets ...
    ou si tu veux vraiment une chaine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char   *stopstring;
     /* Convert the string: */
    int ul = strtoul("0FFF5EDC" , &stopstring, 16 );
    unsigned char Address[4];
    memmove(Address,&ul,sizeof(ul));

  9. #9
    Membre habitué
    Inscrit en
    Décembre 2005
    Messages
    10
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 10
    Par défaut
    Citation Envoyé par farscape
    re,
    pas de pb c'est juste pour etre sur que l'on parle de la meme chose !,
    conversion d'une chaine hexa en numerique
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    char   *stopstring;
     /* Convert the string: */
    int ul = strtoul("0FFF5EDC" , &stopstring, 16 );
    il suffira d'envoyer &ul sur 4 octets ...
    ou si tu veux vraiment une chaine:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    char   *stopstring;
     /* Convert the string: */
    int ul = strtoul("0FFF5EDC" , &stopstring, 16 );
    unsigned char Address[4];
    memmove(Address,&ul,sizeof(ul));
    Exactement ce que je recherchais.
    Je vous remercie pour votre devouement à ce forum.

  10. #10
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    A la limite tu dois pouvoir même faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    unsigned char Address[4]; 
    * (unsigned long *)Address = strtoul("0FFF5EDC" , &stopstring, 16 );
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  11. #11
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Normalement (et à supposer qu'on soit en 32bits), oui, ça marche.
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

  12. #12
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    Septembre 2003
    Messages
    4 942
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2003
    Messages : 4 942
    Par défaut
    Citation Envoyé par Médinoc
    Normalement (et à supposer qu'on soit en 32bits), oui, ça marche.
    pourquoi supposer qu'on est en 32 bits ? strtoul renvoyant un unsigned long, quelle que soit la plateforme, ça doit fonctionner (ah oui, à cause du unsigned char Adresse[4])
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  13. #13
    Expert éminent
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 393
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 393
    Par défaut
    Et surtout parce que sous Win64, un long fait toujours 32 bits:
    C'est le long long et le size_t qui en font 64.
    Cela permet plus de compatibilité avec le code précédent...
    SVP, pas de questions techniques par MP. Surtout si je ne vous ai jamais parlé avant.

    "Aw, come on, who would be so stupid as to insert a cast to make an error go away without actually fixing the error?"
    Apparently everyone.
    -- Raymond Chen.
    Traduction obligatoire: "Oh, voyons, qui serait assez stupide pour mettre un cast pour faire disparaitre un message d'erreur sans vraiment corriger l'erreur?" - Apparemment, tout le monde. -- Raymond Chen.

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 12/05/2003, 22h50
  2. Réponses: 3
    Dernier message: 19/03/2003, 15h19
  3. [debutant]Limiter le temps de saisi
    Par Nasky dans le forum C
    Réponses: 5
    Dernier message: 17/03/2003, 15h47
  4. [Kylix] saisie d'@ IP kylix2 OE
    Par sdoura2 dans le forum EDI
    Réponses: 1
    Dernier message: 10/11/2002, 01h54
  5. [Kylix] crypter la saisie sous kylix
    Par nahmsath dans le forum EDI
    Réponses: 2
    Dernier message: 15/10/2002, 13h16

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