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

Langage Delphi Discussion :

Ajouter des zéros à ma chaîne


Sujet :

Langage Delphi

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut Ajouter des zéros à ma chaîne
    Bonjour,

    Comment je peux ajouter des zéros à ma chaîne '8239.21' pour avoir '00008239.21' et ainsi de suite ?

    ShowMessage(Format('%.*d', [3,7])); marche très bien ('007'), sauf que j'ai une erreur lorsque je mets un nombre décimal, par exemple '212.21'.

    Je bloque dessus !

    Merci

  2. #2
    Expert confirmé
    Avatar de Ph. B.
    Homme Profil pro
    Freelance
    Inscrit en
    Avril 2002
    Messages
    1 784
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2002
    Messages : 1 784
    Points : 5 915
    Points
    5 915
    Par défaut
    Bonjour,
    Citation Envoyé par XDavidX Voir le message
    Comment je peux ajouter des zero a ma chaine '8239.21' pour avoir '00008239.21' ainsi de suite!
    showmessage(Format('%.*d', [3,7])); marche tres bien '007', sauf que j'ai une erreur lorsque je mets un nombre décimal '212.21'
    Je bloque dessus!
    Si vous aviez regardé l'aide pour la fonction Format, vous auriez vu que le format indiqué était inadéquat : d s'applique aux valeurs entières, f aux valeur flottantes.

    Il y a peut-être mieux comme écriture, mais ceci devrait répondre à votre problème :
    ShowMessage(StringReplace(Format('%*.*f', [20, 3, 212.12]), ' ', '0',[rfReplaceAll]));
    Philippe.

  3. #3
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    Une autre possibilité est d'utiliser la fonction FormatFloat :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ShowMessage(FormatFloat('0000.00', 212.21));
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  4. #4
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci beaucoup,
    Lorsque ma variable reçoit un chiffre de editbox exp: ShowMessage(StringReplace(Format('%*.*f', [20, 3, edit1.Text]), ' ', '0',[rfReplaceAll]));
    j'ai le message suivant : ' le format '%*.*f' est incorrect ou incompatible avec l'argument.

  5. #5
    Rédacteur/Modérateur

    Avatar de Roland Chastain
    Homme Profil pro
    Enseignant
    Inscrit en
    Décembre 2011
    Messages
    4 070
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Décembre 2011
    Messages : 4 070
    Points : 15 454
    Points
    15 454
    Billets dans le blog
    9
    Par défaut
    Citation Envoyé par XDavidX Voir le message
    Merci beaucoup,
    Lorsque ma variable reçoit un chiffre de editbox exp: ShowMessage(StringReplace(Format('%*.*f', [20, 3, edit1.Text]), ' ', '0',[rfReplaceAll]));
    j'ai le message suivant : ' le format '%*.*f' est incorrect ou incompatible avec l'argument.
    Sans vouloir t'offenser, il faudrait que tu commences par apprendre à distinguer les différents types de données en Pascal, en lisant un cours. En l'occurrence, Edit1.Text est une chaîne de caractères, que tu as mise là où le compilateur attend un nombre : ça ne peut pas fonctionner. Si certains langages de programmation admettent le passage implicite d'un type de données à un autre, ce n'est pas le cas du Pascal.

    Bref, il faut ou convertir la chaîne en nombre (par exemple au moyen de la fonction StrToFloat), ou garder la chaîne mais dans ce cas la traiter d'une façon adéquate, c'est-à-dire en ajoutant un certain nombre de fois le caractère '0' au début de la chaîne.
    Mon site personnel consacré à MSEide+MSEgui : msegui.net

  6. #6
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Décembre 2013
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2013
    Messages : 20
    Points : 15
    Points
    15
    Par défaut
    Merci,
    Excusez mon ignorance, ça marche a merveille

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

Discussions similaires

  1. [PHP 5.1] Ajouter des zéros significatifs
    Par nicoaix dans le forum Langage
    Réponses: 2
    Dernier message: 09/03/2011, 12h16
  2. Ajouter des zéros dans des colonnes numériques
    Par Najua dans le forum SAS Base
    Réponses: 7
    Dernier message: 10/01/2011, 18h22
  3. ajouter des zéro devant un nombre décimal
    Par les4c77 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 11/02/2010, 17h22
  4. Ajouter des zéro à gauche dans un int
    Par abbd dans le forum Windows Forms
    Réponses: 4
    Dernier message: 16/02/2009, 21h25
  5. VBA excel: Ajouter des zéros après une virgule
    Par kimai81 dans le forum Macros et VBA Excel
    Réponses: 14
    Dernier message: 17/02/2008, 21h54

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