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 129 130
|
#!/usr/local/bin/perl
use switch;
use DBI;
use strict;
#Déclaration des variables
my ($userLabel,$TrailType,$TypeProtec,$Anneau,$EqtA,$EqtB,$Eqt,$Emplacement,$AU, @TableauConduit);
#Ouverture du fichier texte
open FIC_CONDUIT,"< Conduit_CSR.txt" or die "Le fichier n'existe pas !";
my $found = 0;
#Déclaration des entêtes du fichier résultat
print "Conduit\tType de Trail\tType de Protection\tAnneau\tEqtA\tEqtB\tEquipement\tCarte\tAU\n";
while (my $ligne = <FIC_CONDUIT>)
{ #print $ligne;
chomp($ligne);
#Recherche de la référence du Conduit qui se trouve après le mot userLabel
#userLabel "CDTCD000021" => CDTCD000021 = (userLabel)
if ($ligne =~m/userLabel (")(CD[a-zA-Z0-9]+)(")/)
{
#$ligne =~m/userLabel (")(CD[a-zA-Z0-9]+)(")/;
$found++;
#print "$found\n";
$userLabel = $2;
print "\n$userLabel\t";
#print "$ligne";
}
#Recherche du type de Trail qui se trouve après le mot trailType
#trailType pointToPoint => pointToPoint = (TrailType)
if ($ligne =~/trailType ([a-zA-Z]+)/)
{
#$ligne =~/trailType ([a-zA-Z]+)/;
$TrailType = $1;
print "$TrailType\t";
#print "$ligne";
}
#Recherche du type de Protection qui se trouve après le mot protType
#protType notProtected => notProtected = (TypeProtec)
if ($ligne =~/protType ([a-zA-Z]+)/)
{
#$ligne =~/protType ([a-zA-Z]+)/;
$TypeProtec = $1;
print "$TypeProtec\t";
#print "$ligne \n";
}
#Recherche de la référence de l'anneau qui se trouve après le mot text1 (cette référence n'est pas toujours déclarée)
#text1 "AR1-01" => AR1-01 = (Anneau)
if ($ligne =~/text1 (")(([a-zA-Z0-9]{3})-([0-9]+))(")/)
{
$Anneau = $2;
print "$Anneau\t";
}
#Recherche des références EquipementA et EquipementB qui se trouve après le mot text2 (cette référence n'est pas toujours déclarée et les valeurs peuvent être vides)
#text2 "PRRTT-ES003/LOMM-ES003" => PRRTT-ES003 = (EqtA) LOMM-ES003 = (EqtB)
if ($ligne =~/text2 (")([a-zA-Z0-9]+-[a-zA-Z0-9]+)\/(.*)(")/)
{
$EqtA = "";
$EqtB = "";
$EqtA = $2;
print "$EqtA\t";
$EqtB = $3;
print "$EqtB\t";
#print "$ligne\n";
}
#Recherche des références EquipementA, CarteA, EquipementB, CarteB et AU qui se trouvent dans les deux lignes qui commencent par ctp
#ctp "LOMM5-ES003/r01s1b11p01" payloadPos "02" => LOMM5-ES003=(EquipementA) r01s1b11p01=(CarteA) 02=(AU)
#ctp "PRRTT-ES003/r01s1b10p01" payloadPos "02" => PRRTT-ES003=(EquipementB) r01s1b10p01=(CarteB) 02=(AU)
if ($ligne =~/ctp (")([a-zA-Z0-9.]+-[a-zA-Z0-9]+)\/(.*)(")(.*)payloadPos(.)(")(\d+)(")/)
{
$Eqt = $2;
print "$Eqt\t";
$Emplacement = $3;
print "$Emplacement\t";
$AU = $8;
print $AU;
#print "$ligne\n";
}
#Traitement de la définition du script non fait
#Recherche des références Chemin Main, KLM, Chemin Spare, KLM dans les lignes qui commencent par port
#port "LOMM5-ES003/r01s1b11p01" payloadPos "02/2/2.2" constraintType use section "main"
#port "PRRTT-ES003/r01s1b10p01" payloadPos "02/2/2.2" constraintType use section "main"
#port "LOMM5-ES003/r01s1b10p01" payloadPos "02/2/2.2" constraintType use section "spare"
#port "WEPPE-ES001/r01s1b10p02" payloadPos "02/2/2.2" constraintType use section "spare"
#Traitement de la définition du script non fait
#Recherche du type de tructuration du conduit
#payloadStructure tu12Tu12Tu12
#Déclaration d'un tableu de hachage mais qui n'est pas utilisé pour l'instant
my %Concatenation = ("Conduit" => "$userLabel",
"Type de trail" => "$TrailType",
"Tye de protection" => "$TypeProtec",
"Anneau" => "$Anneau",
"EquipementA" => "$EqtA",
"EquipementA" => "$EqtA",
"Equipement" => "$Eqt",
"Carte" => "$Emplacement",
"AU" => "$AU");
#Insertion en ligne dans un tableau les attributs des conduits trouvés pour préparer l'insertion auto dans une base de données MySQL
push @TableauConduit,$userLabel.";".$TrailType.";".$TypeProtec.";".$Anneau.";".$EqtA.";".$EqtB.";".$Eqt.";".$Emplacement.";".$AU."\n";
#Réinitialisation des variables
$TrailType = ""; $TypeProtec = ""; $Anneau = ""; $EqtA = ""; $EqtB = "";
#push @TableauConduit,$userLabel.";".$TrailType.";".$TypeProtec.";".$Anneau.";".$EqtA.";".$EqtB."---".";".$Eqt.";".$Emplacement."\n";
#Tri du tableau
@TableauConduit = sort(@TableauConduit);
#print %Concatenation; print "\n";
}
#Fermeture du fichier
close (FIC_CONDUIT);
#Insetion du contenu du tableau dans un fichier Excel pour vérifier le contenu et l'agencement
foreach my $lignes (@TableauConduit)
{
open(FICCONDUIT,">>Conduittest2.csv");
print FICCONDUIT $lignes;
}
close (FICCONDUIT); |
Partager