1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128
|
#!/usr/local/bin/perl
require "Connect_bd_casten2.pl";
require "PrepaRequeteInsertEqt.pl";
$PathResultat = "c:/Test_Perl/ResultatTraitement";
$PathFicATraiter = "c:/Test_Perl/FichiersATraiter";
open IN,"< $PathFicATraiter/CircuitNew.rmCmd" or die "Le fichier n'existe pas !";
open(FIC, ">$PathResultat/Circuit.xls" ) or die("Impossible d'ouvrir le fichier $FichierResulat\n$!");
print {FIC}"circuit\tserviceType\tpathRate\tAnneau\tEqtA\tEqtB\tEqtA_Bis\tCarteA\tEqtA_Bis2\tCarteA2\tKLM\tChemin\n";
while (<IN>) {
#Matcher le nom du circuit (Identification de début du circuit)
if ( /userLabel "([a-zA-Z0-9_.-]+)"/ ) {
$circuit = $1.$2;
#print "$circuit\t";
}
if (/serviceType ([a-zA-Z0-9.]+)/)
{
$serviceType = $1;
#print FIC "$conduit\t";
}
if (/pathRate ([a-zA-Z0-9.]+)/)
{
$pathRate = $1;
#print FIC "$conduit\t";
}
#if (/text1 (")(([a-zA-Z0-9]{3})-([0-9]+))(")/)
if (/text1 (")([a-zA-Z0-9.-]+)(")/)
{
$Anneau = $2;
#print FIC "$Anneau\t";
}
if (/nap (")([a-zA-Z0-9.]+-[a-zA-Z0-9]+)\/(([a-zA-Z0-9.-]{8}+)p(\d+){2}(.*))(")/)
{
push @Eqt, $2; #print $Eqt[6]; print "\n";
push @Emplacement, $4; #print FIC "$Emplacement\t";
push @Port, $5; #print FIC "$Emplacement\t";
push @Position, $4.$5; #print FIC "$Emplacement\t";
#On récupère en base la PK de l'équipement en extrémité A
foreach $test_eqt (@Match_eqt1)
{
($Num_eqt, $Nom_eqt ) = split( /;/, $test_eqt );
$Test_eqt = ( $Nom_eqt cmp $Eqt[0] );
if ( $Nom_eqt eq $Eqt[0] )
{
$FK_EqtA = $Num_eqt;
#print "$Num_eqt\n";
}
}
#On récupère en base la PK de la carte optique en extrémité A
foreach $test_carte (@Match_carte)
{
($Num_carte, $FK_Eqt_Carte, $UserLabel_Carte, $Emplacement_Carte ) = split( /;/, $test_carte );
$Test_eqt = ( $Emplacement_Carte cmp $Emplacement[0] );
if ( ($UserLabel_Carte eq $Eqt[0]) && ($Emplacement_Carte eq $Emplacement[0]) )
{
$FK_CarteA = $Num_carte;
#print "$Num_eqt\n";
}
}
#On récupère en base la PK de l'équipement en extrémité B
foreach $test_eqt (@Match_eqt1)
{
($Num_eqt, $Nom_eqt ) = split( /;/, $test_eqt );
$Test_eqt = ( $Nom_eqt cmp $Eqt[1] );
if ( $Nom_eqt eq $Eqt[1] )
{
$FK_EqtB = $Num_eqt;
#print "$Num_eqt\n";
}
}
#On récupère en base la PK de la carte optique en extrémité B
foreach $test_carte (@Match_carte)
{
($Num_carte, $FK_Eqt_Carte, $UserLabel_Carte, $Emplacement_Carte ) = split( /;/, $test_carte );
$Test_eqt = ( $Emplacement_Carte cmp $Emplacement[1] );
if ( ($UserLabel_Carte eq $Eqt[1]) && ($Emplacement_Carte eq $Emplacement[1]) )
{
$FK_CarteB = $Num_carte;
#print "$Num_eqt\n";
}
}
}
#if (/port (")(.*)\/(.*)(") payloadPos (")(.*)(")(.*)(")(.*)(")/)
if (/port (")([a-zA-Z0-9.]+-[a-zA-Z0-9]+)\/(.*)(")(.*)payloadPos (")(\d+)\/(\d+)\/(\d+).(\d+)(")(.*)/)
{
push @Eqt2, $2; #print $Eqt[6]; print "\n";
push @Emplacement2, $3; #print FIC "$Emplacement\t";
push @AU2, $7; #print FIC "$AU\t";
push @KLM, $8.$9.$10;
push @K, $8; push @L, $9; push @M, $10;
}
#Matcher le un terme non redondant (Identification de la fin du circuit)
if (/ALLOCpath/)
{
#print "$circuit - $serviceType - $pathRate - $Anneau - $Eqt[0] - $FK_EqtA - $Emplacement[0] - $FK_CarteA - $Port[0] - $Eqt[1] - $FK_EqtB - $Emplacement[1] - $FK_CarteB - $Port[1]\n";
#Insertion_circuit ();
print "$circuit - $Eqt2[0] - $FK_EqtA - $Emplacement2[0] - $FK_CarteA - $AU2[0] - $Eqt[1] - $FK_EqtB - $Emplacement[1] - $FK_CarteB - $Port[1] - $KLM[0]\n";
(@Eqt, @Emplacement, @Port, @Position) = ();
$Anneau = "Not defined";
$circuit = "Not defined";
}
}
#Fermeture du fichier
close (IN);
sub Insertion_circuit
{
$sql = "INSERT INTO tu (PK_tu, circuit , ServiceType , PathRate, Anneau, Eqt_A, FK_EqtA,EmplacementA,FK_CarteA,PortA, Eqt_B, FK_EqtB, EmplacementB, FK_CarteB, PortB)
VALUES ('', '$circuit', '$serviceType', '$pathRate', '$Anneau', '$Eqt[0]', '$FK_EqtA', '$Emplacement[0]', '$FK_CarteA', '$Port[0]', '$Eqt[1]', '$FK_EqtB', '$Emplacement[1]', '$FK_CarteB', '$Port[1]');";
$dbh->do($sql);
}
sub Insertion_itineraire
{
$sql = "INSERT INTO itineraire_tu (PK_tu, circuit , ServiceType , PathRate, Anneau, Eqt_A, FK_EqtA,EmplacementA,FK_CarteA,PortA, Eqt_B, FK_EqtB, EmplacementB, FK_CarteB, PortB)
VALUES ('', '$circuit', '$serviceType', '$pathRate', '$Anneau', '$Eqt[0]', '$FK_EqtA', '$Emplacement[0]', '$FK_CarteA', '$Port[0]', '$Eqt[1]', '$FK_EqtB', '$Emplacement[1]', '$FK_CarteB', '$Port[1]');";
$dbh->do($sql);
} |
Partager