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
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
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));
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
Merci pour ce code mais j ai une erreur lors du compilation
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));
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à
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 !
Il aurait fallu préciser la version de Delphi.Merci pour ce code mais j ai une erreur lors du compilation
for B in A do le compi ne reconnais pas cette forme
voir la réponse de tourlourou
tourlourou Merci bcp
mtn ca marche bien avec ce code
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
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;
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
ShaiLeTroll t'a dit que le type réel sur 32 bits est single.
ah oui Merci bcp ca marche enorme MErci a vous tous
probléme résolu
alors il faut cliquer sur "Résolu"
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager