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 :

parsing et incrémentation d'une variable


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2008
    Messages
    67
    Détails du profil
    Informations forums :
    Inscription : Avril 2008
    Messages : 67
    Par défaut parsing et incrémentation d'une variable
    Bonjour,
    J'ai encore un soucis avec le parsing
    En fait je parse un fichier xml et je récupère les infos que j'écris dans un fichier text.
    Je souhaiterais incrémenter une variable à chaque fois que je trouve une info différente dans le xml.
    ex: j'ai bob1 bob2 bob3
    bob2 different de bob1 donc $j++.Et de la mm facon avec bob2 et bob3

    j'ai essayé pas mal de truc sans y arriver.

    Sinon peut on faire une incrémentation à chaque fois qu'une ligne est écrite dans le fichier?

    Merci.

  2. #2
    Membre éprouvé
    Avatar de Jasmine80
    Femme Profil pro
    Bioinformaticienne
    Inscrit en
    Octobre 2006
    Messages
    3 157
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 45
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : Octobre 2006
    Messages : 3 157
    Par défaut
    Si les motis recherchés sont sur la même ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    open(FICH, accesfichier) or die "IMPOSSIBLE D'OUVRIR LE FICHIER";
    my $ligne;
    my $compte_motifs_differents = 0;
    my $compte_toutes_lignes_motifs = 0;
     
    while ($ligne = <FICH>){
        if($ligne =~ /(motif1).*(motif2)/){
             if ($1 ne $2){
                 $compte_motifs_differents ++;
             }
             $compte_toutes_lignes_motifs ++;
       }
    }
    close(FICH);
    Tu peux faire quelque chose de ce genre en trouvant la bonne expression régulière afin de récupérer tes motifs si ils sont sur la même ligne.
    Tes informations différentes sont-elles sur la même ligne?
    Sans expliquer plus en détails ton problème, on peut difficilement t'aider.

    Si tes motis sont sur différentes lignes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    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
    open(FICH, accesfichier) or die "IMPOSSIBLE D'OUVRIR LE FICHIER";
    my $ligne;
    my $compte_motifs_differents = 0;
    my $precedent_motif = "initialisation";
    while ($ligne = <FICH>){
     
        if($ligne =~ /(motif1)/){
           if($precedent_motif ne $1){      
                $compte_motifs_differents ++;
                $precedent_motif = $1;
           }
        }
     
        if($ligne =~ /(motif2)/){
           if($precedent_motif ne $1){      
                $compte_motifs_differents ++;
                $precedent_motif = $1;
           }
        }
     
        if($ligne =~ /(motif3)/){
           if($precedent_motif ne $1){      
                $compte_motifs_differents ++;
                $precedent_motif = $1;
           }
        }
     
    }
    close(FICH);
    A toi de voir si plusieurs motifs peuvent être trouver sur la même ligne ou non. Si non, tu peux utiliser des elsif au lieu des 2 derniers if.


    Sinon peut on faire une incrémentation à chaque fois qu'une ligne est écrite dans le fichier?
    A l'endroit où dans ton code tu écris dans un fichier, tu incrémentes une variable.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    print $out_file "blablabla";
    $lignes_fich_sortie ++;

Discussions similaires

  1. [MySQL] Prob d'incrémentation d'une variable que j'extrait d'une table
    Par bodysplash007 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 30/04/2007, 14h24
  2. [XSLT] Incrémentation d'une variable
    Par Oberown dans le forum XSL/XSLT/XPATH
    Réponses: 1
    Dernier message: 03/10/2006, 18h03
  3. incrémentation d'une variable
    Par dorian2031 dans le forum Langage
    Réponses: 3
    Dernier message: 02/08/2006, 16h13
  4. [Tableaux] Incrémentation d'une variable
    Par cisse18 dans le forum Langage
    Réponses: 46
    Dernier message: 19/07/2006, 17h02
  5. [Débutant] Probleme d'incrémentation d'une variable
    Par sakuragikan dans le forum ASP
    Réponses: 2
    Dernier message: 25/08/2005, 13h11

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