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

C++Builder Discussion :

Traitement sur un Edit1->text Formaté


Sujet :

C++Builder

  1. #1
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut Traitement sur un Edit1->text Formaté
    Bonjour tt le monde,

    J'ai un problème au niveau des traitement sur les Edit1->Text formaté et aussi les cellules StrigGrid.

    Je m'explique :
    float MyVarFloat=20000;

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Montant->Text=FormatFloat("##,###,##0.00",MyVarFloat); //===> 20 000,00
    Si le met le traitement suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    float xVal=StrToFloat(Montant->Text);
    ====> Error : 20 000,00 is not à valid floating point

    Remarquer l'espace de séparation des milliers

    Comment peut-on récupérer le format d'origne 20000 pour faire les traitements de calcul et de fonctions exple : StrToFloat ?


    Même problème avec :
    float xMontant=Grid1->Cells[3][2].ToDouble();

    si Grid1->Cells[3][2]=FormatFloat("##,###,##0.00",MyVarFloat);



    Merci.

  2. #2
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    Est-ce qu'il n y a pas de solution à ce problème !!!!!

    J'attend une réponse avec impatience !!!


    Merci.

  3. #3
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    Salut,

    J'attend tjrs une réponse

  4. #4
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Salut
    Sur ce site il est de bon ton de faire preuve de patiente
    il suffit de consulter l'aide pour obtenir un résultat
    La variable globale DecimalSeparator ou son équivalent TFormatSettings définit le caractère qui est utilisé comme séparateur décimal. Le séparateur des milliers et les symboles monétaires ne sont pas admis dans la chaîne. Si S ne contient pas une valeur valide, StrToFloat déclenche une exception EConvertError.
    par ailleurs je ne comprends pas que tu veuilles faire des calculs à partir de chaine formatée alors qu'il me semble que tu dispose de la valeur originale (float)
    mais comme je suis bon prince voici une possibilité de résolution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    MyVarFloat=20000;
       Montant->Text=FormatFloat("##,###,##0.00",MyVarFloat);
       AnsiString Value=ReplaceStr(Montant->Text,"'","");// étant donné que la fonction strToFloat n'accepte pas le séparateur de milliers , il suffit de le faire disparaitre de la chaine
       float mFloat=StrToFloat(Value);
    cdlt
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

  5. #5
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    Merci DjmSoftware;

    Je vais essayer cette solution.


    Merci encore

  6. #6
    Membre confirmé
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Par défaut
    Ca marche pas :

    Même message d'erreur.

    AnsiString Value=ReplaceStr(Montant->Text," ","");

    "'" ===> " "

    encore même pblm.

  7. #7
    Membre Expert
    Avatar de DjmSoftware
    Homme Profil pro
    Responsable de compte
    Inscrit en
    Mars 2002
    Messages
    1 044
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Responsable de compte
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 044
    Billets dans le blog
    1
    Par défaut
    Hola
    le code que j'ai posté est parfaitement fonnctionel
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    AnsiString Value=ReplaceStr(Montant->Text,"'","");
    tu a écris
    AnsiString Value=ReplaceStr(Montant->Text," ","");
    Erreur de frappe

    je te signale que le caractère <'> correspond au séparateur des milliers donc

    "'" ===> " "
    est bien naturellement faux !!!!!
    vous trouverez mes tutoriels à l'adresse suivante: http://djmsoftware.developpez.com/
    je vous en souhaite une excellente lecture ...

    A lire : Les règles du forum

Discussions similaires

  1. [XL-2010] Reproduire un même traitement sur les autres fichiers texte d'un dossier
    Par capi81 dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 13/07/2015, 19h09
  2. [XL-2007] Problème de format de données sur importation de fichier texte.
    Par Axe_Débutant dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 13/04/2013, 12h41
  3. [TextBlock] Probleme de binding sur du texte formaté
    Par Bruno.Chappe dans le forum Windows Presentation Foundation
    Réponses: 7
    Dernier message: 10/05/2009, 16h03
  4. Réponses: 8
    Dernier message: 14/09/2006, 16h43
  5. [C++] Textbox et traitement sur le texte
    Par poporiding dans le forum Framework .NET
    Réponses: 8
    Dernier message: 28/12/2005, 19h10

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