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 :

Formatage d'un entier avec des 0 en tête


Sujet :

Delphi

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 63
    Points
    63
    Par défaut Formatage d'un entier avec des 0 en tête
    J'ai des entier 1,..1243,9588, etc
    que je souhaite formaté en String de la façon suivante:
    0000001
    0001243
    0009588
    ...
    c'est à dire avec une longueur fixe dont les espaces précédents seraient rempli par des 0

    Comment puis je procéder ?

    Merci

  2. #2
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    Salut

    FormatFloat('0000000', nombre)

    JP

  3. #3
    Expert confirmé
    Avatar de anapurna
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2002
    Messages
    3 434
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Mai 2002
    Messages : 3 434
    Points : 5 846
    Points
    5 846
    Par défaut
    salut

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    format('%.7d',[monentier]);
    @+ Phil

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Février 2003
    Messages
    560
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 560
    Points : 576
    Points
    576
    Par défaut
    Bonjour,

    StringOfChar('0', 10) renvoi '0000000000' soit 10 fois '0'.

    Length(Value) renvoi le nombre de caractère dans Value;

    Vous pouvez donc essayer une fonction de ce type;

    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
    21
    22
    23
    24
     
    Function IntegerFixedLenght(Value: String; Length: Integer): string;
    var
     I: Integer;
    begin
      I := Length(Value);
      If I > Length then begin
         Result := Copy(Value, -I - Length, I);
         // j'ai deja plus de Length Caractères, je prend les dernier caractères
        Exit;
      end;
     
      If I = Length then begin
        Result := value;
        Exit;
      end;
     
      Result := StringOfChar('0', Length - I) + Value;
     
     
      // Exemple Length = 10;
      // Value = '12'
      // donc  StringOfChar('0', Length - I) =  StringOfChar('0', 10 - 2) = '00000000'   soit 8 fois '0'
      // Le resultat est donc '0000000012' soit 10 caractères

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 59
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 74
    Points : 63
    Points
    63
    Par défaut
    merci

  6. #6
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Pour info une tite fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    Function IntToZeroStr(Value : Integer; Digit : Integer) : String;
    Begin
    Result := IntToStr(Value);
    for i := Length(Result)+1 to Digit do REsult := '0'+Result;
    End;

  7. #7
    Membre habitué
    Homme Profil pro
    Inscrit en
    Juin 2003
    Messages
    115
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Juin 2003
    Messages : 115
    Points : 129
    Points
    129
    Par défaut
    amha je trouve que les fonctions Format et FormatFloat sont largement suffisante, à moins d'être dans une contrainte de performance et d'optimisation forte (sachant que format est particulièrement rapide).
    Je pense que vous réinventez un peu la roue ...

  8. #8
    Membre chevronné
    Avatar de Clorish
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    2 474
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 2 474
    Points : 2 158
    Points
    2 158
    Par défaut
    Citation Envoyé par J-P-B
    amha je trouve que les fonctions Format et FormatFloat sont largement suffisante, à moins d'être dans une contrainte de performance et d'optimisation forte (sachant que format est particulièrement rapide).
    Je pense que vous réinventez un peu la roue ...
    C'etait juste pour la culture

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

Discussions similaires

  1. Convertir un entier en caractère avec des 0 devant
    Par Oluha dans le forum Développement
    Réponses: 12
    Dernier message: 28/08/2017, 13h37
  2. Réponses: 2
    Dernier message: 10/09/2007, 19h43
  3. Formatage d'un entier avec des 0 en tête
    Par AODRENN dans le forum SQL Procédural
    Réponses: 3
    Dernier message: 14/06/2007, 19h31
  4. [MySQL] Requête insertion mais que avec des entiers
    Par elikakoun dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 26/05/2007, 16h23
  5. Formatage d'entiers avec un signe
    Par chtom dans le forum Langage
    Réponses: 5
    Dernier message: 21/09/2005, 20h59

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