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 Delphi Discussion :

Récupérer les 4 octets d'un réel 32 bits


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 13
    Points
    13
    Par défaut Récupérer les 4 octets d'un réel 32 bits
    Bonjour

    afin de transmettre à une carte électronique un paramètre reel32bit, j'ai besoin de connaitre les 4 octets qui composent ce réel.

    Sauriez vous me dire par quel outil je peux passer pour faire cela ? ( en delphi svp )

    Merci par avance

  2. #2
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    un truc dans ce gout là ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
     
    type
     TAr = array[0..3] of Byte;
     
     
    var
     I: Integer;
     A: TAr absolute I;
     B: Byte;
    begin
     I := 32564;
     for B in A do
       ShowMessage(IntToStr(B));

  3. #3
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    La question est beaucoup trop vague !
    Comment sont envoyés les données à la carte ?
    Carte interne avec Driver (genre carte de bus de terrain sur PCI)
    Carte externe via COM, USB, TCP\IP ...


    Il faut penser aussi si l'architecture est bigEndian ou LittleEndian

    Sous Intel, c'est LittleEndian, en fait, les octets sont stockés à l'envers par rapport à ce qu'on écrit
    ainsi 1 en hexa 32 c'est 00 00 00 01 mais en mémoire c'est 01 00 00 00 !

    le type reel32bit en Delphi c'est Single,
    à l'intérieur c'est des groupe de bit, qu'il faut exploiter via une formule mathématique voir IEEE 754
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    type
     TAr = array[0..3] of Byte;
     
    var
     I: Integer;
     A: TAr absolute I;
     B: Byte;
    begin
     I := 32564;
     for B in A do
       ShowMessage(IntToStr(B));
    Merci pour ce code mais j ai une erreur lors du compilation
    for B in A do le compi ne reconnais pas cette forme

    ShaiLeTroll non pas besoin de driver j envoi les données via HID en usb j utilise la lib de MICROCHIP ya aucun pb là moi je veut transformé un reél genre 0.5 pour l envoyer a ma carte je suis debutant en delphi et je sais pas si ya une fonction qui me donne mon réel sous 4 octect séparé afin de les transmétre a ma carte voilà

  5. #5
    Modérateur
    Avatar de tourlourou
    Homme Profil pro
    Biologiste ; Progr(amateur)
    Inscrit en
    Mars 2005
    Messages
    3 858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Biologiste ; Progr(amateur)

    Informations forums :
    Inscription : Mars 2005
    Messages : 3 858
    Points : 11 301
    Points
    11 301
    Billets dans le blog
    6
    Par défaut
    essaye à la place
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for B:=0 to 3 do
       ShowMessage(IntToStr(A[B]));
    Delphi 5 Pro - Delphi 11.3 Alexandria Community Edition - CodeTyphon 6.90 sous Windows 10 ; CT 6.40 sous Ubuntu 18.04 (VM)
    . Ignorer la FAQ Delphi et les Cours et Tutoriels Delphi nuit gravement à notre code !

  6. #6
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    Merci pour ce code mais j ai une erreur lors du compilation
    for B in A do le compi ne reconnais pas cette forme
    Il aurait fallu préciser la version de Delphi.

    voir la réponse de tourlourou

  7. #7
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    tourlourou Merci bcp

    mtn ca marche bien avec ce code
    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
     
    type
     TAr = array[0..3] of Byte;
     
     
    var
     I: Integer;
     A: TAr absolute I;
     B: Byte;
    begin
     I := 125;
    for B:=0 to 3 do
       ShowMessage(IntToStr(A[B]));
     
     
          end;
    pour I integer moi j ai besoin de valeur réels par exemple 0.5 dé que je change I en real si je mets
    I: real ;
    i:=0.5;
    ca marche pas !
    que doit je changé a ce code
    oui Papy214 désolé je pensé pas que c'etait important version 7 je suis un débutant en delphi
    Merci pour votre aide

  8. #8
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 694
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 694
    Points : 13 130
    Points
    13 130
    Par défaut
    ShaiLeTroll t'a dit que le type réel sur 32 bits est single.

  9. #9
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2011
    Messages
    25
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations forums :
    Inscription : Décembre 2011
    Messages : 25
    Points : 13
    Points
    13
    Par défaut
    ah oui Merci bcp ca marche enorme MErci a vous tous
    probléme résolu

  10. #10
    Membre émérite

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Novembre 2007
    Messages
    3 387
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Novembre 2007
    Messages : 3 387
    Points : 2 999
    Points
    2 999
    Par défaut
    alors il faut cliquer sur "Résolu"

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

Discussions similaires

  1. Réponses: 0
    Dernier message: 20/12/2009, 12h09
  2. Récupérer les mails Outlook dans une table Access
    Par zerrokooll dans le forum VBA Access
    Réponses: 79
    Dernier message: 07/07/2009, 14h22
  3. Réponses: 5
    Dernier message: 20/08/2008, 11h43
  4. Réponses: 17
    Dernier message: 26/06/2008, 13h05
  5. Réponses: 4
    Dernier message: 04/07/2003, 19h13

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