Convertion de type

Signaler
Messages postés
7
Date d'inscription
lundi 6 décembre 2004
Statut
Membre
Dernière intervention
19 décembre 2006
-
Messages postés
16
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
26 juin 2006
-
Bonjour a tous ,

je travaille actuellement sur la récupération de données via le protocole UDP
voici mon prg:

unit Datax;


interface


uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, IdBaseComponent, IdComponent, IdUDPBase, IdUDPClient, StdCtrls,
IdUDPServer, NMUDP, ExtCtrls;


type
TForm1 = class(TForm)
data: TLabel;
fermer: TButton;
NMUDP1: TNMUDP;
Edit1: TEdit;
Bevel1: TBevel;
procedure fermerClick(Sender: TObject);
procedure NMUDP1DataReceived(Sender: TComponent; NumberBytes: Integer;
FromIP: String; Port: Integer);



private
{ Private declarations }
public
{ Public declarations }


end;


var
Form1: TForm1;
data1: array[1..2000]of char;
implementation


{$R *.dfm}


procedure TForm1.fermerClick(Sender: TObject);
begin
Application.Terminate;
end;


procedure TForm1.NMUDP1DataReceived(Sender: TComponent;
NumberBytes: Integer; FromIP: String; Port: Integer);
begin
NMUDP1.ReadBuffer(data1,NumberBytes);


Edit1.Text:= data1; //Toutes les données du buffer****
data.Caption:= data1[7]+data1[8]+data1[9]+data1[10]; //récupération des données 7,8,9,10 du buffer****


end;


end.
Maintenant comment convertir ces données (type char->type Float)
logiquement les données 7,8,9,10 devraient ressembler a ça:
0.000 après mise en forme.
Dans l'état actuel je reçois les données en ASCII

Grand MERCI a qui pourrait m'aider

2 réponses

Messages postés
3810
Date d'inscription
vendredi 23 juillet 2004
Statut
Modérateur
Dernière intervention
28 mai 2020
29
Salut,
Alors c'est pas très claire mais je vais quand même essayer de te répondre :

Tu veux convertir un Char en Float avec une précision de 3 chiffres après la virgule.
Donc ça donne ceci :

Label1.Caption := Format('%.3f', [StrToFloat(Data1[7])]);

@+
Cirec
Messages postés
16
Date d'inscription
lundi 2 juin 2003
Statut
Membre
Dernière intervention
26 juin 2006

sinon ord(c : Char) te renvoi le code ASCII je croi...

Utilise le en fonction, les table ascii sont presente partout sur le net.



Maintenant, je vois pas trop pourquoi convertir un char en float precision comme ca...

C'est quoi comme donne que tu recuperes?

-_- VS ^_^