[perl] ouverture de fichier d'extension parti
fifto
Messages postés
54
Statut
Membre
-
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
lami20j Messages postés 21644 Statut Modérateur, Contributeur sécurité -
Bonjour,
J'aimerais savoir comment on programme en perl l'ouverture d'un fichier d'extension particulière dans un repertoire donné.
PAr exemple, je veux ouvrir le seul fichier d'extension *.f06 dans le repertoire /dossier1/
Et si jamais il ne trouve pas de fichier d'extension *.f06 alors il ouvre le fichier d'extension *.nas
PAr contre, si il trouve deux fichiers d'extension *.f06 dans le repertoire, il s'arrete et affiche un message d'erreur.
PAreil si il trouve deux fichiers d'extension *.nas
QQn sait-il faire ca svp ?
merci.
J'aimerais savoir comment on programme en perl l'ouverture d'un fichier d'extension particulière dans un repertoire donné.
PAr exemple, je veux ouvrir le seul fichier d'extension *.f06 dans le repertoire /dossier1/
Et si jamais il ne trouve pas de fichier d'extension *.f06 alors il ouvre le fichier d'extension *.nas
PAr contre, si il trouve deux fichiers d'extension *.f06 dans le repertoire, il s'arrete et affiche un message d'erreur.
PAreil si il trouve deux fichiers d'extension *.nas
QQn sait-il faire ca svp ?
merci.
A voir également:
- [perl] ouverture de fichier d'extension parti
- Fichier bin - Guide
- Changer extension fichier - Guide
- Fichier epub - Guide
- Fichier rar - Guide
- Comment réduire la taille d'un fichier - Guide
1 réponse
Salut,
lami20j
P.S. S'il y a un fichier .f06 et un fichier .nas c'est .f06 qui sera ouvert.
Une petite modification (teste les 2)
#! /usr/bin/perl
use warnings;
use strict;
my %h;
my $fic;
opendir DIR,"." or die "E/S : $!\n";
while ( defined (my $fic = readdir(DIR)) ){
next if $fic =~ /^\.+/;
$h{substr($fic,-3)}++;
if ( $fic =~ /.*\.(f06)/ || $fic =~ /.*\.(nas)/){
if ($h{$1} >1){
die "Plusiers fichier $1\n";
}
else {
open F,"$fic" or die "E/S : $!\n";
}
}
}
while (<F>){print} # pour test
Je n'ai pas pris en compte le répertoire vide.
lami20j
P.S. S'il y a un fichier .f06 et un fichier .nas c'est .f06 qui sera ouvert.
Une petite modification (teste les 2)
#! /usr/bin/perl
use warnings;
use strict;
my %h;
my $fic;
opendir DIR,"." or die "E/S : $!\n";
while ( defined (my $fic = readdir(DIR)) ){
next if $fic =~ /^\.+/;
$h{substr($fic,-3)}++;
if ( $fic =~ /.*\.(f06|nas)/){
if ($h{$1} >1){
die "Plusiers fichier $1\n";
}
else {
open F,"$fic" or die "E/S : $!\n";
}
}
}