Mon script a pour but de compter le nombre de ligne dans tous les fichiers
pl present dans un ensemble de dossiers ayant pour point commun c:\stat\
Voici un script ou il compte bien le nbre de ligne dans les fichiers PL
mais seulement dans un dossier et je ne trouve pas comment le faire pour
toute mon arbo.
sub listeFile
{
my $nomDir = "C:\\stat";
my $log = shift;
my $i = 0;
my @liste;
my $val = "";
my $temp="";
opendir(DIR,$nomDir);
@liste = grep(/[^\.]/,readdir(DIR)); # On récupère le nom du fichier ou du
répertoire seul (sans le chemin complet)
closedir(DIR);
while($i < scalar @liste)
{
$nomComplet = $nomDir."\\".$liste[$i];
if (-d $nomComplet) #S'il s'agit d'un répertoire
{
if ($liste[$i]!~ /^_/)
{
listeFile($nomComplet,$log);
}
}
else
{
if($liste[$i]=~ /(pl$)/i ) #Si le fichier à l'extension désirée
{
$compteur++;
#print LOG "$nomComplet\n";
print LOG "$nomComplet\n";
}
}
$i++;
}
}
my $compteur = 0;
my $emplacement1 = "C:\\tmp";
my $ficResultat1 = "C:\\stat\\result1.txt";
sub recup_fichiers
{
my $nomFic = shift;
my $result = shift;
# Récupération des lignes du fichier
open(F,$nomFic);
open(SORTIE,">> $result");
$j = 0;
while(<F>)
{
$j ++;
}
print SORTIE "$nomFic;$j\n";
close F;
close SORTIE;
}
my $emplacement = "";
my $ficResultat = "C:\\stat\\result.txt";
recup_fichiers($_, $ficResultat) for glob '*.pl' ;
sub listeFile { my $nomDir = "C:stat"; my $log = shift;
....
listeFile($nomComplet,$log);
tout ca tout ca quoi ... allez vazy chuis sur que tu peux trouver ...
greg
tu dois utiliser le principe de recursivité pour parcourir l'ensemble d'un arbre.
"Orion93" a écrit dans le message de news:
Mon script a pour but de compter le nombre de ligne dans tous les fichiers pl present dans un ensemble de dossiers ayant pour point commun c:stat
Voici un script ou il compte bien le nbre de ligne dans les fichiers PL mais seulement dans un dossier et je ne trouve pas comment le faire pour toute mon arbo.
sub listeFile { my $nomDir = "C:stat"; my $log = shift; my $i = 0; my @liste; my $val = ""; my $temp="";
opendir(DIR,$nomDir); @liste = grep(/[^.]/,readdir(DIR)); # On récupère le nom du fichier ou du répertoire seul (sans le chemin complet) closedir(DIR); while($i < scalar @liste) { $nomComplet = $nomDir."".$liste[$i]; if (-d $nomComplet) #S'il s'agit d'un répertoire { if ($liste[$i]!~ /^_/) { listeFile($nomComplet,$log); } } else { if($liste[$i]=~ /(pl$)/i ) #Si le fichier à l'extension désirée { $compteur++; #print LOG "$nomCompletn"; print LOG "$nomCompletn"; }
} $i++; } } my $compteur = 0; my $emplacement1 = "C:tmp"; my $ficResultat1 = "C:statresult1.txt";
sub recup_fichiers { my $nomFic = shift; my $result = shift;
# Récupération des lignes du fichier open(F,$nomFic); open(SORTIE,">> $result"); $j = 0; while(<F>) { $j ++; } print SORTIE "$nomFic;$jn"; close F; close SORTIE; }
my $emplacement = ""; my $ficResultat = "C:statresult.txt"; recup_fichiers($_, $ficResultat) for glob '*.pl' ;
Merci d'avance pour votre aide
tu dois utiliser le principe de recursivité pour parcourir l'ensemble d'un
arbre.
"Orion93" <orion93@club-internet.fr> a écrit dans le message de
news:Xns9483D700628E9orion93clubinternetf@194.158.104.32...
Mon script a pour but de compter le nombre de ligne dans tous les fichiers
pl present dans un ensemble de dossiers ayant pour point commun c:stat
Voici un script ou il compte bien le nbre de ligne dans les fichiers PL
mais seulement dans un dossier et je ne trouve pas comment le faire pour
toute mon arbo.
sub listeFile
{
my $nomDir = "C:\stat";
my $log = shift;
my $i = 0;
my @liste;
my $val = "";
my $temp="";
opendir(DIR,$nomDir);
@liste = grep(/[^.]/,readdir(DIR)); # On récupère le nom du fichier ou du
répertoire seul (sans le chemin complet)
closedir(DIR);
while($i < scalar @liste)
{
$nomComplet = $nomDir."\".$liste[$i];
if (-d $nomComplet) #S'il s'agit d'un répertoire
{
if ($liste[$i]!~ /^_/)
{
listeFile($nomComplet,$log);
}
}
else
{
if($liste[$i]=~ /(pl$)/i ) #Si le fichier à l'extension désirée
{
$compteur++;
#print LOG "$nomCompletn";
print LOG "$nomCompletn";
}
}
$i++;
}
}
my $compteur = 0;
my $emplacement1 = "C:\tmp";
my $ficResultat1 = "C:\stat\result1.txt";
sub recup_fichiers
{
my $nomFic = shift;
my $result = shift;
# Récupération des lignes du fichier
open(F,$nomFic);
open(SORTIE,">> $result");
$j = 0;
while(<F>)
{
$j ++;
}
print SORTIE "$nomFic;$jn";
close F;
close SORTIE;
}
my $emplacement = "";
my $ficResultat = "C:\stat\result.txt";
recup_fichiers($_, $ficResultat) for glob '*.pl' ;
tu dois utiliser le principe de recursivité pour parcourir l'ensemble d'un arbre.
"Orion93" a écrit dans le message de news:
Mon script a pour but de compter le nombre de ligne dans tous les fichiers pl present dans un ensemble de dossiers ayant pour point commun c:stat
Voici un script ou il compte bien le nbre de ligne dans les fichiers PL mais seulement dans un dossier et je ne trouve pas comment le faire pour toute mon arbo.
sub listeFile { my $nomDir = "C:stat"; my $log = shift; my $i = 0; my @liste; my $val = ""; my $temp="";
opendir(DIR,$nomDir); @liste = grep(/[^.]/,readdir(DIR)); # On récupère le nom du fichier ou du répertoire seul (sans le chemin complet) closedir(DIR); while($i < scalar @liste) { $nomComplet = $nomDir."".$liste[$i]; if (-d $nomComplet) #S'il s'agit d'un répertoire { if ($liste[$i]!~ /^_/) { listeFile($nomComplet,$log); } } else { if($liste[$i]=~ /(pl$)/i ) #Si le fichier à l'extension désirée { $compteur++; #print LOG "$nomCompletn"; print LOG "$nomCompletn"; }
} $i++; } } my $compteur = 0; my $emplacement1 = "C:tmp"; my $ficResultat1 = "C:statresult1.txt";
sub recup_fichiers { my $nomFic = shift; my $result = shift;
# Récupération des lignes du fichier open(F,$nomFic); open(SORTIE,">> $result"); $j = 0; while(<F>) { $j ++; } print SORTIE "$nomFic;$jn"; close F; close SORTIE; }
my $emplacement = ""; my $ficResultat = "C:statresult.txt"; recup_fichiers($_, $ficResultat) for glob '*.pl' ;
Merci d'avance pour votre aide
greg
GNU IS NOT UNIX GNU IS NOT UNIX GNU IS NOT UNIX GNU IS NOT UNIX GNU IS NOT UNIX..........
GNU IS NOT UNIX
GNU IS NOT UNIX
GNU IS NOT UNIX
GNU IS NOT UNIX
GNU IS NOT UNIX..........