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 PHP Discussion :

ajout de leading zero [RegEx]


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut ajout de leading zero
    Bonjour

    Les regexp et moi ca fait deux !!
    Plutot que de me casser la tete a trouver la syntaxe esotérique j'ecris une fonction et on n'en parle plus !
    Bon mais il y a des cas ou c'est pas possible alors je suis perdu

    Comment avec un regexp ajouter des leading zero

    1 devient 00001
    12 00012

    etc...

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    453
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 453
    Par défaut
    Salut !
    En fait les regexp et moi, ça fait bien plus que 2...
    Mais bon, on se débrouille toujours sans

    Essaye ça :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    <?php
    function addleadingzeros($string, $maxdigits) {
    if(strlen($string) > $maxdigits) {
    return $string;
    } else {
    $i = 0;
    $str = $string;
    while($i < ($maxdigits - strlen($string))) {
    $str = "0".$str;
    $i++;
    }
    return $str;}}
    // j'aurais pu le trouver sur google, mais bon ça m'amusait de le faire XD
    ?>
    Où $maxdigits = nombre de chiffres au maximum...

    Ex:
    addleadingzeros("1",7) = 0000001 (7 chiffres)
    addleadingzeros("48",4) = 0048
    addleadingzeros("1234567",4) = 1234567 (dépassement du nb de chiffres maximum, donc on laisse la valeur telle quelle)

    Edit: lol, je viens juste de chercher et en fait il y a même une fonction php built-in pour ça :

    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    str_pad($mon_texte, $chiffres_max, "0");

  3. #3
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Salut

    Merci beaucoup pour ta réponse !
    Mais malheureusement je suis tombé sur le forum php car c'etait le seul a avoir une section regexp
    Et pratiquement c'est malheureusement VRAIMENT un regexp que je dois utiliser dans mon contexte sinon j'aurais aussi ecris une fonction ou utilisé une methode du language csharp

    Mais je dois renomer une serie de fichiers numérotés de 0 a 1000

    en

    0000.tx
    0001.tx

    etc

    Mais je vais finir par faire une methode en Csharp j'y perdrai moins de temps que de continuer à chercher !!

  4. #4
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Sinon, y a ça

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    int myNumber = 666;
    string myStringNumber = myNumber.ToString().PadLeft(16, '0');
    En gardant à l'esprit que ça ne gère pas les négatifs...

  5. #5
    Membre expérimenté
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Par défaut
    Merci tout le monde !!

    Mais comme je l'ai dis, je cherchais VRAIMENT un regexp

    A défaut j'ai fait un petit programme de renommage en Csharp, ca ma pris 5 minutes et c'est ok !

    N.B. +/- quelques jours et 2h de moins que de trouver la piste en regexp et l'ecrire sans erreur

    J'ai vraiment une grande compassion pour les specialistes en regexp ils font preuve d'une grande abnegation intellectuelle face aux simples réalités de ce monde

  6. #6
    Membre Expert
    Avatar de s.n.a.f.u
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2006
    Messages
    2 760
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2006
    Messages : 2 760
    Par défaut
    Que ce soit en perl, en php, ou en C#, le principe sera de repérer et capturer la cible, en l'occurrence un nombre. Facile. Et ensuite de lui appliquer un traitement. En php, cela pourra se faire avec l'option e, mais je ne me rappelle plus la façon de faire en C#. Je me rafraichis les méninges et je reviens dans le coin si c'est encore utile.

    --- Edit ---
    Et pourquoi te faut-il vraiment une regexp ? Parce que c'est quand même généralement moins performant que les fonctions internes...

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

Discussions similaires

  1. Comment ajouter des leading zero ?
    Par Stephan09 dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 29/03/2012, 14h45
  2. optimisation de "leading" zeros et notation scientifique
    Par SpaceFrog dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 03/06/2010, 12h03
  3. FORMAT sqlplus leading zero
    Par Ujitsu dans le forum Sql*Plus
    Réponses: 6
    Dernier message: 06/06/2007, 11h05
  4. Formatage de nombre (Ajout de zero devant)
    Par Seb33300 dans le forum C++
    Réponses: 6
    Dernier message: 11/04/2007, 09h22
  5. ajouter des zeros devant chiffres
    Par jolatouf dans le forum Langage
    Réponses: 3
    Dernier message: 25/10/2006, 12h10

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