bonjour j'ai un script perl ki marche correctement sur linux mais que je dois executer sous windows. j'ai essaye de faire quelque modif pour qu'elle marche mais rien n'y fait. dc je sollicite votre aide pour voir si quelqu'un a deja eu a faire à une telle situation. le script vise a decompresser un fichier compresser unix au format .dat et mettre le contenu ds une fichier texte.
voici le code :
use strict;
my $DOSSIER="F:\Pabx_20090107\raw\";
my $ligne;
my $n;
my $i;
my $k1;
my $k2;
my @tabl1;
my @tabl2;
my $val;
sub eclate_fic {
my $occur;
my $element;
my @tabl2;
my $nb;
my $j;
my $cpt=0;
if (-e "$_[0]") # test de l'existence du fichier binaire a eclater
{
print "Le fichier en cours de traitement est $_[0] \n";
$element=system ("zcat $_[0]>..\result.txt");
$nb=0;
$j=0;
open (FIC,">>..\result.txt") or die ("Erreur fichier result : $!\n");
my $sortie = select(FIC);
select($sortie);
$cpt=1; }
else
{ print "Le fichier $_[0] est introuvable ds le syst de fichier\n";
}
return $cpt; }
sub insert_ligne {
printf("Post : ".substr($_[0],35,30)."\n");
printf("Num appelé :".substr($_[0],5,30)."\n");
printf("Cout:".substr($_[0],191,10)."\n");
printf("Debut appel :".substr($_[0],441,17)." \n");
printf("Fin appel :".substr($_[0],169,17)."\n");
printf("Durée Total :".substr($_[0],201,10)."\n");
}
chdir($DOSSIER)||die("Erreur chdir ");
@tabl1=glob('tax*.dat');
$n=0;
$n=@tabl1;
$i=0;
while($i<$n)
{
$ligne=@tabl1[$i];
$val=&eclate_fic($ligne);
if ($val=1)
{
open (CHEM,"<..\result.txt")or die ("Erreur ouverture fichier result en lecture: $!\n");
@tabl2=<CHEM>;
$k1=@tabl2;
$k2=1; # pour sauter la ligne de description
while($k2<$k1)
{
&insert_ligne(@tabl2[$k2]);
$k2++;
}
}
$i++1;
};