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

Delphi Discussion :

Port com et virgule flottante


Sujet :

Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Mai 2006
    Messages : 42
    Par défaut Port com et virgule flottante
    Bonjour,
    Bonne année à tous,

    J'ai conçu un programme delphi qui permet de recevoir une température d'une carte électronique branché sur le port com de mon pc. Pas de problème jusque là. Ensuite je désire envoyé les températures sur un autre pc de mon réseau doté du même logiciel. Je récupére la température dans un edit(elle s'affiche) mais lorsque je tente de l'afficher sur un graphe il me renvoi l'erreur
    '"n'est pas une valeur en virgule flottante correcte. Voici le 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
     
    procedure TForm1.ClientSocket1Read(Sender: TObject;
      Socket: TCustomWinSocket);
      var test : double;
    begin
    //Edit2.Text := valSockT;
    Edit2.Text:= Socket.ReceiveText;   
    test := strtofloat(Socket.ReceiveText);
    With Series2 do
           Begin
                Add(test, TimetoStr(Time), clYellow ) ;     
           end;
     
    end;
    Merci d'avance,

    F£@M€$

  2. #2
    Membre émérite

    Profil pro
    Inscrit en
    Mai 2003
    Messages
    582
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Mai 2003
    Messages : 582
    Par défaut
    Le probleme vient du fait que ton socket est vide lorsque tu essai
    de la convertion vers un Float
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Edit2.Text:= Socket.ReceiveText;       //Affiche la temperature ex:21.5   
    test := strtofloat(Socket.ReceiveText);//convertie en float mais Socket.ReceiveText est maintenant vide!
    ce qui te donne le message:
    '' n'est pas une valeur en virgule flottante correcte.

    autrement dit... une chaine vide ('') n'est pas une valeur

    Essaie ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Edit2.Text:= Socket.ReceiveText;       //Affiche la temperature ex:21.5   
    test := strtofloat(Edit2.Text); //Convertie en float La valeur Affichée.
    En cas de problème avec la communication entre la sonde et ton pc,
    je te propose aussi d'inclure un try except
    ton programme sera ainsi plus stable...

    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
    17
    18
    19
    20
     
    procedure TForm1.ClientSocket1Read(Sender: TObject;
      Socket: TCustomWinSocket);
      var test : double;
    begin
        try
            Edit2.Text:= Socket.ReceiveText;
            test := strtofloat(Edit2.Text);
            With Series2 do
            Begin
                Add(test, TimetoStr(Time), clYellow ) ;
            end;
        except
            //en cas de probleme de communication,
            //on pourrait recevoir n'importe quoi
            //est la convertion sera impossible
            //alors on fait rien de special...mais on plante pas.
            on EConvertError do {Nothing!} ;
        end;
    end;
    J'espère le tout conforme.
    Comment dupliquer un disque...ça vous intéresse?
    Tutoriel et code source delphi ici

Discussions similaires

  1. [javaComm]Communication port COM
    Par gui4593 dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 04/06/2004, 12h35
  2. Réponses: 6
    Dernier message: 16/05/2004, 19h03
  3. [langage] Arithmétique en virgule flottante
    Par marouanitos dans le forum Langage
    Réponses: 3
    Dernier message: 19/09/2003, 14h48
  4. [Kylix] Kylix3: Pb de virgule flottante
    Par hubble dans le forum EDI
    Réponses: 1
    Dernier message: 22/06/2003, 16h36
  5. port com
    Par jeremi dans le forum C
    Réponses: 12
    Dernier message: 16/09/2002, 11h37

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