Convertion de type

scecim Messages postés 7 Date d'inscription lundi 6 décembre 2004 Statut Membre Dernière intervention 19 décembre 2006 - 17 mars 2006 à 22:30
PyRuSs Messages postés 16 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 26 juin 2006 - 18 mars 2006 à 00:28
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

Cirec Messages postés 3833 Date d'inscription vendredi 23 juillet 2004 Statut Modérateur Dernière intervention 18 septembre 2022 50
17 mars 2006 à 23:08
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
0
PyRuSs Messages postés 16 Date d'inscription lundi 2 juin 2003 Statut Membre Dernière intervention 26 juin 2006
18 mars 2006 à 00:28
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 ^_^
0
Rejoignez-nous