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 d'informations d'un fichier txt


Sujet :

Langage Perl

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2016
    Messages : 48
    Points : 34
    Points
    34
    Par défaut Extraction d'informations d'un fichier txt
    Bonjour,

    Je suis débutant en perl (c'est mon 1er script), j'ai déjà trouvé un poste similaire au mien sans pour autant réussir à résoudre mon problème ici: http://www.developpez.net/forums/d15...s-fichier-txt/

    Voila mon code:

    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
    #!/bin/perl
    use strict;
    use warnings;
    
    ## 1- je dois récupérer des informations dans un fichier
    
    my $fichier = "/home/.../monfichier.txt";
    my $debut = ">>Overrepresented sequences"; ## le motif que je recherche
    my $fin = ">>END_MODULE"; ## le 2ème motif que je recherche
    print "motif recherché: $debut ligne $. \n";
    
    open L, $fichier or die $!;
    
    my $line = <L>; ## j'ai essayé d'initialiser ma variable...
    
    
    while (my $line = <L>) 
    {	
    	if ($line =~ m/>>Overrepresented sequences/) ## je cherche mon motif
    	{
    	#~ print $line if ($line =~ m/>>Overrepresented sequences/);
    		print "$debut\n";
    		print "motif trouvé \n";
    		print ("$line");  ## ce print ne me renvoie rien 
    	}
    	
    }
    Le but étant de lire un fichier texte, que mon programme trouve le 1er motif, puis qu'il me renvoie les lignes qui se situent après ce motif jusqu'à ce qu'il trouve le 2ème motif et qu'il arrête de me renvoyer ces informations.
    Pour l'instant mon problème c'est que mon print en vert me renvoie un "fail" ...
    Comment faire donc pour récupérer les informations se situant après le motif ?
    J'espère avoir été assez clair... Je suis certain que la réponse doit être très simple mais je cherche depuis hier et impossible de trouver la solution ...

    Merci à vous,

    Bonne journée

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

    Informations professionnelles :
    Activité : Bioinformaticienne
    Secteur : Santé

    Informations forums :
    Inscription : octobre 2006
    Messages : 3 157
    Points : 2 673
    Points
    2 673
    Par défaut
    Bonjour TrafalgarD,

    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
    #!/usr/local/bin/perl
     
    use strict;
    use warnings;
     
     
    my $ok = 0;
    my $debut = ">>Overrepresented sequences";
    my $fin = ">>END_MODULE";
     
    my $file = 'test.txt';
     
    open(DATA, $file) or die "Couldn't open file, $!"; 
     
    while (my $l = <DATA>){ 
     
    	if ($l =~ m/${debut}/){
    		$ok = 1;
    		print "$debut\nmotif trouve \n";
    	}
    	elsif ($l =~ m/${fin}/){
    		print "$l\n$fin\nmotif trouve \n";
    		last; 
    	}	 
    	if ($ok == 1){
    		print "$l\n";
    	}
    }
    close(DATA);
    Tu dois utiliser des crochets : $l =~ m/${debut}/
    -- Jasmine --

  3. #3
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    mars 2016
    Messages
    48
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : mars 2016
    Messages : 48
    Points : 34
    Points
    34
    Par défaut
    Bonjour,

    désolé de répondre aussi tard j'avais fini par utiliser un autre moyen et j'ai oublié de répondre entre temps.
    Merci de vous être penché sur le problème et d'avoir passé du temps pour me répondre !
    J'utiliserai ces lignes de codes une autre fois (j'espère )

    Encore merci à vous

    Bonne journée !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Extraction de nombres dans un fichier txt
    Par Orel01 dans le forum MATLAB
    Réponses: 8
    Dernier message: 28/10/2009, 23h08
  2. extraction de données d'un fichier txt
    Par Sienar dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 11/06/2009, 09h18
  3. Extraction de données à partir de fichiers txt
    Par rob408231 dans le forum MATLAB
    Réponses: 15
    Dernier message: 13/06/2008, 15h17
  4. Réponses: 4
    Dernier message: 04/03/2008, 14h46

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