Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Nicolas George
Frédéric wrote in message <426e3e4c$0$7220$:
$edate=`date "+%d/%m/%Y"`; # récupère la date courante
print "edate=[$edate]n";
($date, $event) = split("<->", $_); # split le fichier en entré
print "=[$date]n";
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement correspondant ne s'imprime pas ?
Avec ces deux lignes, la différence sera tout de suite évidente. Deux remarques en plus :
- Il vaudrait mieux utiliser time, localtime et sprintf, ou directement strftime, plutôt que de forker+exécuter date, c'est plus efficace et plus robuste.
- Il vaut mieux écrire les dates sous la forme 2005-04-26, car ainsi un tri lexicographique (sort simple) les classe également de manière chronologique. L'écriture 26/04/2005 place le premier mai avant le deux avril.
Frédéric wrote in message <426e3e4c$0$7220$626a14ce@news.free.fr>:
$edate=`date "+%d/%m/%Y"`; # récupère la date courante
print "edate=[$edate]n";
($date, $event) = split("<->", $_); # split le fichier en entré
print "=[$date]n";
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement
correspondant ne s'imprime pas ?
Avec ces deux lignes, la différence sera tout de suite évidente. Deux
remarques en plus :
- Il vaudrait mieux utiliser time, localtime et sprintf, ou directement
strftime, plutôt que de forker+exécuter date, c'est plus efficace et plus
robuste.
- Il vaut mieux écrire les dates sous la forme 2005-04-26, car ainsi un tri
lexicographique (sort simple) les classe également de manière
chronologique. L'écriture 26/04/2005 place le premier mai avant le deux
avril.
$edate=`date "+%d/%m/%Y"`; # récupère la date courante
print "edate=[$edate]n";
($date, $event) = split("<->", $_); # split le fichier en entré
print "=[$date]n";
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement correspondant ne s'imprime pas ?
Avec ces deux lignes, la différence sera tout de suite évidente. Deux remarques en plus :
- Il vaudrait mieux utiliser time, localtime et sprintf, ou directement strftime, plutôt que de forker+exécuter date, c'est plus efficace et plus robuste.
- Il vaut mieux écrire les dates sous la forme 2005-04-26, car ainsi un tri lexicographique (sort simple) les classe également de manière chronologique. L'écriture 26/04/2005 place le premier mai avant le deux avril.
Denis -esp2008-
Bonjour,
($date, $event) = split("<->", $_); # split le fichier en entré Split prend en premier argument une expression rationnelle, donc '-' est
un caractère spécial. J'essaierai <->.
-- Denis
Bonjour,
($date, $event) = split("<->", $_); # split le fichier en entré
Split prend en premier argument une expression rationnelle, donc '-' est
#!/usr/bin/perl -w # $edate=`date "+%d/%m/%Y"`; # récupère la date courante
while(<STDIN>) { ($date, $event) = split("<->", $_); # split le fichier en entré if($date eq scalar $edate) { # compare la date du ficher à # $edateA print STDOUT "$event"; # } }
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement correspondant ne s'imprime pas ?
Bonjour,
Probablement parce qu'il manque un chomp après le "$edate = ..." et également après le while : ####################################################################### #!/usr/bin/perl
use strict; use warnings;
# récupère la date courante my $edate=`date "+%d/%m/%Y"`; chomp $edate;
while(<>) { chomp; # split le fichier en entrée my ($date, $event) = split("<->", $_); # compare la date du ficher à $edateA print "$eventn" if ($date eq $edate); } exit; #######################################################################
-- Régis Caspar
Frédéric wrote:
# Je cré un petit script qui récupère dans le fichier event, la date
# et l'évènement correspondant.
#!/usr/bin/perl -w
#
$edate=`date "+%d/%m/%Y"`; # récupère la date courante
while(<STDIN>)
{
($date, $event) = split("<->", $_); # split le fichier en entré
if($date eq scalar $edate) { # compare la date du ficher à
# $edateA
print STDOUT "$event"; #
}
}
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement
correspondant ne s'imprime pas ?
Bonjour,
Probablement parce qu'il manque un chomp après le "$edate = ..." et
également après le while :
#######################################################################
#!/usr/bin/perl
use strict;
use warnings;
# récupère la date courante
my $edate=`date "+%d/%m/%Y"`;
chomp $edate;
while(<>)
{
chomp;
# split le fichier en entrée
my ($date, $event) = split("<->", $_);
# compare la date du ficher à $edateA
print "$eventn" if ($date eq $edate);
}
exit;
#######################################################################
#!/usr/bin/perl -w # $edate=`date "+%d/%m/%Y"`; # récupère la date courante
while(<STDIN>) { ($date, $event) = split("<->", $_); # split le fichier en entré if($date eq scalar $edate) { # compare la date du ficher à # $edateA print STDOUT "$event"; # } }
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement correspondant ne s'imprime pas ?
Bonjour,
Probablement parce qu'il manque un chomp après le "$edate = ..." et également après le while : ####################################################################### #!/usr/bin/perl
use strict; use warnings;
# récupère la date courante my $edate=`date "+%d/%m/%Y"`; chomp $edate;
while(<>) { chomp; # split le fichier en entrée my ($date, $event) = split("<->", $_); # compare la date du ficher à $edateA print "$eventn" if ($date eq $edate); } exit; #######################################################################
-- Régis Caspar
Nicolas George
Denis -esp2008- wrote in message :
Split prend en premier argument une expression rationnelle, donc '-' est un caractère spécial.
- n'est pas un caractère spécial pour les expressions rationnelles de perl, à part dans les classes de caractères.
J'essaierai <->.
C'est de toutes façons sans risque.
Denis -esp2008- wrote in message
<pan.2005.04.26.14.28.52.163069@apinc.org.enleve.ceci.et.cela>:
Split prend en premier argument une expression rationnelle, donc '-' est
un caractère spécial.
- n'est pas un caractère spécial pour les expressions rationnelles de perl,
à part dans les classes de caractères.
#!/usr/bin/perl -w # $edate=`date "+%d/%m/%Y"`; # récupère la date courante
while(<STDIN>) { ($date, $event) = split("<->", $_); # split le fichier en entré if($date eq scalar $edate) { # compare la date du ficher à # $edateA print STDOUT "$event"; # } }
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement correspondant ne s'imprime pas ?
Bonjour,
Probablement parce qu'il manque un chomp après le "$edate = ..." et également après le while : ####################################################################### #!/usr/bin/perl
use strict; use warnings;
# récupère la date courante my $edate=`date "+%d/%m/%Y"`; chomp $edate;
while(<>) { chomp; # split le fichier en entrée my ($date, $event) = split("<->", $_); # compare la date du ficher à $edateA print "$eventn" if ($date eq $edate); } exit; #######################################################################
-- Régis Caspar
Merci à chacun pour vos précieux conseils. Le Perl c'est quand même plus exigent que le awk :-)
Frédéric --
In article <426e5087$0$29878$636a15ce@news.free.fr>,
Régis Caspar <regis.caspar+news@gmail.com> wrote:
Frédéric wrote:
# Je cré un petit script qui récupère dans le fichier event, la date
# et l'évènement correspondant.
#!/usr/bin/perl -w
#
$edate=`date "+%d/%m/%Y"`; # récupère la date courante
while(<STDIN>)
{
($date, $event) = split("<->", $_); # split le fichier en entré
if($date eq scalar $edate) { # compare la date du ficher à
# $edateA
print STDOUT "$event"; #
}
}
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement
correspondant ne s'imprime pas ?
Bonjour,
Probablement parce qu'il manque un chomp après le "$edate = ..." et
également après le while :
#######################################################################
#!/usr/bin/perl
use strict;
use warnings;
# récupère la date courante
my $edate=`date "+%d/%m/%Y"`;
chomp $edate;
while(<>)
{
chomp;
# split le fichier en entrée
my ($date, $event) = split("<->", $_);
# compare la date du ficher à $edateA
print "$eventn" if ($date eq $edate);
}
exit;
#######################################################################
--
Régis Caspar
Merci à chacun pour vos précieux conseils. Le Perl c'est quand même
plus exigent que le awk :-)
#!/usr/bin/perl -w # $edate=`date "+%d/%m/%Y"`; # récupère la date courante
while(<STDIN>) { ($date, $event) = split("<->", $_); # split le fichier en entré if($date eq scalar $edate) { # compare la date du ficher à # $edateA print STDOUT "$event"; # } }
Et je ne comprends pas pourquoi à la date du 26/04/2005 l'évènement correspondant ne s'imprime pas ?
Bonjour,
Probablement parce qu'il manque un chomp après le "$edate = ..." et également après le while : ####################################################################### #!/usr/bin/perl
use strict; use warnings;
# récupère la date courante my $edate=`date "+%d/%m/%Y"`; chomp $edate;
while(<>) { chomp; # split le fichier en entrée my ($date, $event) = split("<->", $_); # compare la date du ficher à $edateA print "$eventn" if ($date eq $edate); } exit; #######################################################################
-- Régis Caspar
Merci à chacun pour vos précieux conseils. Le Perl c'est quand même plus exigent que le awk :-)