Probleme avec un exercice en perl

Résolu/Fermé
svenstek - 15 mars 2010 à 21:36
svenstek Messages postés 5 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 17 mars 2010 - 17 mars 2010 à 02:05
Bonjour,
j'arrive pas à résoudre un exercice en perl , l'exercice consiste à écrire un programme qui récupère toutes les dates(écrits en français sans séparateurs:exemple 12mars2002) à partir d'un fichier texte(qu'on va crée)ensuite affiche chaque date en chiffres avec saison associée
ex:sdfdsfdsfdsfdds14mai2003dsqdqsdsq31janvier1999 doit afficher:14mai2003:14.05.2003:printemps et ainsi de suite vous avez une idée ?

5 réponses

lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
15 mars 2010 à 21:38
Salut,

vous avez une idée ?
Oui, mais on aimera bien voir la tienne d'abord.
0
moi a vrai dire je suis nul en perl :( j'ai aucune idée
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
16 mars 2010 à 08:36
Salut,

Je vais voir ça plus tard.
0
lami20j Messages postés 21331 Date d'inscription jeudi 4 novembre 2004 Statut Modérateur, Contributeur sécurité Dernière intervention 30 octobre 2019 3 567
16 mars 2010 à 09:08
Salut,

Par exemple

Le fichier

$ cat date.txt
sdfdsfdsfdsfdds14mai2003dsqdqsdsq31janvier1999
sdfdsfdsfdsfdds24novembre2003dsqdqsdsq31juin1999
sdfdsfdsfdsfdds24décembre2003dsqdqsdsq31juillet1999
sdfdsfdsfdsfdds24TITI2003dsqdqsdsq31avril1999


Le script

$ cat cherche_date.pl
#!/usr/bin/perl
use strict;use warnings;
open F,"date.txt" or die "E/S date.txt, $!\n";


my %mois=(
          "janvier"  => ["01", "hiver"],
          "février"  => ["02", "hiver"],
          "mars"     => ["03", "printemps"],
          "avril"    => ["04", "printemps"],
          "mai"      => ["05", "printemps"],
          "juin"     => ["06", "été"],
          "juillet"  => ["07", "été"],
          "août"     => ["08", "été"],
          "septembre"=> ["09", "automne"],
          "octobre"  => ["10", "automne"],
          "novembre" => ["11", "automne"],
          "décembre" => ["12", "hiver"],

);

while(<F>){
  chomp;
  my @t=$_=~/(\d\d.*?\d{4})/g;
  for my $m(@t){
    $m=~/(\d+)(\D+)(\d+)/;
    print "$m:$1.${$mois{$2}}[0].$3:${$mois{$2}}[1]\n"
          if grep {/$2/} keys %mois;
  }
}
__END__


L'exécution

$ perl cherche_date.pl
14mai2003:14.05.2003:printemps
31janvier1999:31.01.1999:hiver
24novembre2003:24.11.2003:automne
31juin1999:31.06.1999:été
24décembre2003:24.12.2003:hiver
31juillet1999:31.07.1999:été
31avril1999:31.04.1999:printemps


0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
svenstek Messages postés 5 Date d'inscription jeudi 8 mai 2008 Statut Membre Dernière intervention 17 mars 2010
17 mars 2010 à 02:05
je vous remercie
0