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

[DEBUTANT] Format de date - expression régulière


Sujet :

Langage Perl

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut [DEBUTANT] Format de date - expression régulière
    Bonjour tout le monde,

    Question basique que je n'arrive pas à résoudre.

    J'ai un script perl qui fait des rapports (connexion mysql, ftp,...).

    J'ai un seul problème avec un format de date.

    Mon script reçoit deux dates en paramètres dans le format suivant:

    15032006 --> je dois convertir en 060315

    Pour ça, on m'a conseillé d'utiliser une expression régluière, ce que j'ai fait et c'est Ok:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    $datestart = '31122006'; # A remplacer par $_[0]
    $datestart =~ s/(\d\d)(\d\d)\d\d(\d\d)/$3$2$1/;
    print $datestart;
    Dans ce cas là c'est tout bon, ma variable est égal à 060315.

    Mon problème c'est que j'ai besoin de définir la deuième date en paramètre et la en utilisant la même expression régluière, ça me renvoit toujours la même valeur, peu importe ce que j'ai donné comme paramètre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    $datestart = 15032006; # A remplacer par $_[0]
    $datestart =~ s/(\d\d)(\d\d)\d\d(\d\d)/$3$2$1/; # --> OK renvoie 060315
    $datestop = 25032006;
    $datestop =~ s/(\d\d)(\d\d)\d\d(\d\d)/$3$2$1/; # --> FAUX !! me renvoie toujours 267270, peu importe la valeure donnée.
    print $datestart;
    print $datestop;
    Est-ce-que quelqu'un peut m'aider ou éventuellement me donner une autre piste ?

    Merci d'avance

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    42
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 42
    Points : 47
    Points
    47
    Par défaut
    Hello,

    Ton code est bon... C'est la récupération des paramêtres qui ne fonctionne certainement pas !

    Comment appelles-tu ton script ? Comment récupères-tu la valeur de '$datestop' ? Ta portion de code provient très certainement d'une fonction, comment l'appelles-tu ?

    Avec le code ci-dessous, tout fonctionne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    #!/bin/perl
     
    $datestart = $ARGV[0];
    $datestart =~ s/(\d\d)(\d\d)\d\d(\d\d)/$3$2$1/; # --> OK
    $datestop = $ARGV[1];
    $datestop =~ s/(\d\d)(\d\d)\d\d(\d\d)/$3$2$1/; # --> Ok
    print $datestart;
    print $datestop;
    Eclaire ta question, parce qu'il nous manque un petit quelque chose pour te répondre

    PluX59

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    8
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Juin 2002
    Messages : 8
    Points : 7
    Points
    7
    Par défaut
    Citation Envoyé par PluX59
    Ton code est bon... C'est la récupération des paramêtres qui ne fonctionne certainement pas !
    PluX59
    Aie, je me suis complètement planté, j'avais fait une modif dans le script, puis l'avait déplacé sur une share réseau.

    Je modifiais le mauvais script perl...

    Désolé et merci

Discussions similaires

  1. Parsing de Date, expression régulière
    Par Lorenzaccio dans le forum Général JavaScript
    Réponses: 3
    Dernier message: 18/09/2009, 18h05
  2. la fonction format et les expressions régulières
    Par modafine dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 02/01/2009, 18h08
  3. Réponses: 4
    Dernier message: 27/09/2006, 15h44
  4. [Noob] Formation rapide à Perl - Expressions régulières
    Par Konrad Florczak dans le forum Langage
    Réponses: 16
    Dernier message: 25/09/2006, 14h48
  5. [Debutant] Format des dates ?
    Par Invité dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 02/09/2005, 14h55

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