IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage Perl Discussion :

Extraction et mise en forme des données d'un tableau


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Janvier 2010
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2010
    Messages : 6
    Par défaut Extraction et mise en forme des données d'un tableau
    Bonjour,
    J'ai un petit problème pour mettre en forme et récupérer correctement des données d'un tableau.
    Objectif: Lancer un audit entre les données du SI patrimoine et le SI technique (Serveur). Je dois donc découper et mettre dans des variables des données issues d'un tableau afin de pouvoir les comparer.

    [CODE] #!/usr/local/bin/perl
    #Déclaration et remplissage du tableau contenant les circuits issus des serveurs
    @ConstitCircuitGestio =
    ("CRS000001;PDH;123;CDTCD111013;MAIN"
    ,"CRS000001;PDH;123;CDTCD111017;SPARE"
    ,"CRS000001;PDH;123;CDTCD111018;SPARE"
    ,"CRS000002;PDH;133;CDTCD111020;MAIN"
    ,"CRS000002;PDH;133;CDTCD111021;MAIN"
    ,"CRS000002;PDH;133;CDTCD111022;MAIN");

    #Déclaration et remplissage du tableau contenant les circuits issus du SI patrimoine
    @ConstitCircuitRosam =
    ("CRS000001;PDH;123;CDTCD111013-.,1;CDTCD111017-.,1/CDTCD111077-.,2/CDTCD111001-.,3/CDTCD111005-.,4/CDTCD111009-.,5"
    ,"CRS000002;PDH;133;CDTLP111056-.,1/CDTLP111052-.,2/CDTLP111048-.,3/CDTLP111044-.,4;"
    ,"CRS000005;PDH;133;CDTCD111053-.,1/CDTCD111057-.,2/CDTCD111061-.,3/CDTCD111065-.,4;CDTCD111049-.,1/CDTCD111045-.,2/CDTCD111041-.,3/CDTCD111037-.,4"
    ,"CRS000007;PDH;133;CDTCD111057-.,1;");

    #Découpage des données et insertion dans des variables
    foreach $Cir2(@ConstitCircuitRosam)
    {
    ($Circuit, $Type, $KLM, $ConduitMain, $ConduitSpare) = split (/;/, $Cir2);
    #Suppression des caractères "-."
    $ConduitMain =~s/-.//g;
    #Remplacement du caractère "\" par ";".
    $ConduitMain =~s/\//;/g;
    $ConduitSpare =~s/-.//g;
    #Découpage de la variable $ConduitMain pour mettre dans une nouvelle variable les données découpées en fonction du séparateur.
    @ConduitMainCircuit = split(/;/,$ConduitMain);

    for $i (0..$#ConduitMainCircuit)
    {
    $NewConduit = $ConduitMainCircuit[$i].".".$i;
    print "$Circuit - $Type - $KLM - $NewConduit\n";
    }
    }
    [\CODE]

    J'ai donc sur plusieurs lignes le résultat suivant:
    CRS000001 - PDH - 123 - CDTCD111013,1.0
    CRS000002 - PDH - 133 - CDTLP111056,1.0
    CRS000002 - PDH - 133 - CDTLP111052,2.1
    CRS000002 - PDH - 133 - CDTLP111048,3.2
    CRS000002 - PDH - 133 - CDTLP111044,4.3
    CRS000005 - PDH - 133 - CDTCD111053,1.0
    CRS000005 - PDH - 133 - CDTCD111057,2.1
    CRS000005 - PDH - 133 - CDTCD111061,3.2
    CRS000005 - PDH - 133 - CDTCD111065,4.3
    CRS000007 - PDH - 133 - CDTCD111057,1.0

    Je souhaite avoir sur une seule ligne en fonction du circuit qui ne se représente pas deux fois l'affichage suivant afin de stocker par la suite dans un fichier Excel ou les données seront séparées par des tabulations:

    CRS000001 - PDH - 123 - CDTCD111013,1.0
    CRS000002 - PDH - 133 - CDTLP111056,1.0 - CDTLP111052,2.1 - CDTLP111048,3.2 - CDTLP111044,4.3
    CRS000005 - PDH - 133 - CDTCD111053,1.0 - CDTCD111057,2.1 - CDTCD111061,3.2 - CDTCD111065,4.3
    CRS000007 - PDH - 133 - CDTCD111057,1.0


    Merci d'avance pour votre réponse.

    Patrice

  2. #2
    Membre averti
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Mars 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 28
    Par défaut
    Bonsoir:

    ### (solution 1)

    #Découpage des données et insertion dans des variables
    foreach $Cir2(@ConstitCircuitRosam)
    {
    ($Circuit, $Type, $KLM, $ConduitMain, $ConduitSpare) = split (/;/, $Cir2);
    #Suppression des caractères "-."
    $ConduitMain =~s/-.//g; # <----- $ConduitMain =~s/-\.//g;
    #Remplacement du caractère "\" par ";".
    $ConduitMain =~s/\//;/g; # <----- $ConduitMain =~s/\\/;/g;
    $ConduitSpare =~s/-.//g; # <----- $ConduitSpare =~s/-\.//g;
    #Découpage de la variable $ConduitMain pour mettre dans une nouvelle variable les données découpées en fonction du séparateur.
    @ConduitMainCircuit = split(/;/,$ConduitMain);
    my $joinCMC = join (" - ", @ConduitMainCircuit); # tout simplement

    #for $i (0..$#ConduitMainCircuit)
    #{
    #$NewConduit = $ConduitMainCircuit[$i].".".$i;
    #print "$Circuit - $Type - $KLM - $NewConduit\n";
    #}


    print "$Circuit - $Type - $KLM - $joinCMC\n"; # tout simplement

    }



    ### (solution 2)
    ....
    ....

    my %th = ();

    #Découpage des données et insertion dans des variables
    foreach $Cir2(@ConstitCircuitRosam)
    {
    ....
    ....
    #Suppression des caractères "-."
    $ConduitMain =~s/-.//g; # <----- $ConduitMain =~s/-\.//g;
    #Remplacement du caractère "\" par ";".
    $ConduitMain =~s/\//;/g; # <----- $ConduitMain =~s/\\/;/g;
    $ConduitSpare =~s/-.//g; # <----- $ConduitSpare =~s/-\.//g;
    ....
    ....
    ....for $i (0..$#ConduitMainCircuit)
    ....{
    ........$NewConduit = $ConduitMainCircuit[$i].".".$i;
    ........###print "$Circuit - $Type - $KLM - $NewConduit\n";
    ........$th{"$Circuit - $Type - $KLM"} .= " - $NewConduit";
    ....}
    }

    foreach $CTK (keys %th) # ou bien (sort keys %th) pour les avoir triés
    {
    ....print "$CTK$th{
    $CTK}\n";
    }


    J'espère que je t'ai apporté quelque chose!

Discussions similaires

  1. Mise en forme des données sous Excel
    Par mhamedbj dans le forum Cognos
    Réponses: 2
    Dernier message: 27/08/2011, 16h00
  2. [2008] Mise en forme des données
    Par Valochette dans le forum SSRS
    Réponses: 2
    Dernier message: 12/05/2011, 09h34
  3. [MySQL] probleme de mise en forme des données
    Par arakiri dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 01/06/2007, 11h01
  4. [MySQL] Mise en forme des données
    Par Silborn dans le forum PHP & Base de données
    Réponses: 1
    Dernier message: 27/12/2006, 18h00
  5. Réponses: 6
    Dernier message: 16/06/2006, 14h20

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo