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 :

Comment savoir si un String est un Float


Sujet :

Delphi

  1. #1
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 20
    Points
    20
    Par défaut Comment savoir si un String est un Float
    Bonjour,

    J'ai un string qui peut contenir soit une valeur float ou pas. Comment savoir sans generer une exception telle qu'avec StrToFloat() ?

    Il y a-t-il une fonction telle que 'isFloat' qui me renvoie TRUE si le string peut etre convertit en float et FALSE sinon ?

    Ludo

  2. #2
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    bonjour, il a TryStrToFloat qui renvoie un boolean.

  3. #3
    Membre habitué
    Inscrit en
    Mai 2005
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 258
    Points : 156
    Points
    156
    Par défaut
    IsFloat n'existe pas. Mais je ne vois pas ton problème par rapport aux exceptions. C'est le meilleur moyen de le faire, surtout avec un float qui peut être écrit de beaucoup de façon dans un string.

    Un petit except on EConvertError te permet d'ête sûr de gérer toutes les possibilités.

  4. #4
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Tu peux toujours protéger ton code dans un bloc de protection try..except..end, comme ça c'est ton programme qui "manage" l'exception :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    function ISFloat(s:string):boolean;
    begin
      try
        result:=true;
        StrToFloat(s);
      except
         result:=false;
      end;
    end;
    L'exception ne sera déclenchée que si tu la fais tourner depuis ton Delphi (Bouton Run).

    SInon, si tu lances l'exe, tu verras que ça marche
    Bidouilleuse Delphi

  5. #5
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    Merci pour vos reponses.

    Je n'ai pas trouvé la fonction TryStrToFloat.

    Je vais opté pour le code waskol.

    Encore merci

    Ludo

  6. #6
    bjl
    bjl est déconnecté
    Membre averti Avatar de bjl
    Profil pro
    Inscrit en
    Décembre 2002
    Messages
    263
    Détails du profil
    Informations personnelles :
    Localisation : Brésil

    Informations forums :
    Inscription : Décembre 2002
    Messages : 263
    Points : 338
    Points
    338
    Par défaut
    C'est vrai qu'elle n'apparait pas dans l'aide delphi mais TryStrToFloat est bien dans sysutils

    function TrystrToFloat( Const S : String; Out Value : Extended) : Boolean;

    c'est l'équivalent de TryStrtoInt pour les float.

  7. #7
    DMO
    DMO est déconnecté
    Membre averti
    Avatar de DMO
    Profil pro
    Inscrit en
    Février 2004
    Messages
    290
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 290
    Points : 343
    Points
    343
    Par défaut
    Salut,

    Juste pout dire, la proposition de bjl me semble répondre directement à la question posée, à savoir "Comment savoir si un string est un float ?".

    TryStrToFloat étant dédié à cette utilisation, il me semble plus judicieux de l'utiliser, car un uses de SysUtils ne coute pas grand chose. Maintenant, la solution du try..except est valable également, mais elle est selon moi plus lourde.
    « La simplicité est la sophistication suprême » (Léonard de Vinci)

  8. #8
    Membre à l'essai
    Inscrit en
    Mars 2005
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 33
    Points : 20
    Points
    20
    Par défaut
    j ai essayé le 'TrystrToFloat'. Ca marche sans probleme

    Sinon, la fonction prposéee IsFloat semble bien mais elle ouvre une fenetre d exception que je ne souhaite pas.

    J opte pour 'TrystrToFloat' puisque parfaitement dedié a ce que je veux faire

    Merci a tous

    Ludo

  9. #9
    Membre expert
    Avatar de LadyWasky
    Femme Profil pro
    Inscrit en
    Juin 2004
    Messages
    2 932
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 53
    Localisation : France, Hauts de Seine (Île de France)

    Informations forums :
    Inscription : Juin 2004
    Messages : 2 932
    Points : 3 565
    Points
    3 565
    Par défaut
    Citation Envoyé par ludovic tambour
    Sinon, la fonction prposéee IsFloat semble bien mais elle ouvre une fenetre d exception que je ne souhaite pas.
    Seulement quand tu lances ton appli depuis l'IDE de Delphi, pas depuis le ".exe" lancé directement depuis Windows

    Sinon je ne connaissais pas TryStrToInt et TryStrToFloat, et c'est vrai que c'est mieux ainsi.
    Bidouilleuse Delphi

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

Discussions similaires

  1. [PHP 5.3] Comment savoir si une string est dans une variable
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 29/10/2011, 15h08
  2. Réponses: 10
    Dernier message: 23/06/2011, 08h19
  3. [Access] Comment savoir qu'un champs est vide ?
    Par Oberown dans le forum ASP
    Réponses: 9
    Dernier message: 25/10/2004, 10h47
  4. Unix - Comment savoir si un fichier est ouvert
    Par freddyboy dans le forum C
    Réponses: 7
    Dernier message: 06/10/2004, 15h53
  5. Comment savoir qu'une fonction est standard ?
    Par D[r]eadLock dans le forum C
    Réponses: 5
    Dernier message: 24/03/2003, 14h42

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