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 :

combiner les lignes d un fichier


Sujet :

Langage Perl

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 40
    Points
    40
    Par défaut combiner les lignes d un fichier
    Salut à tous,
    J aimerais combiner les lignes d un fichier en seule ligne. Voici les lignes que me livre le fichier.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    23 pour 30 secondes, Apres 30 pour les prochains 1800 s
    econdes
    j aimerais combiner de tel sorte que j ai
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    23 pour 30 secondes, Apres 30 pour les prochains 1800 secondes
    Voici comment j ai procede:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    my $nextline = <FIC>;
    my $line2 = <FIC>;
    $nextline = $nextline.$line2;
    chomp($nextline);
    ca ne marche pas. Je ne sais plus trop comment faire. Est que quelqu un pourrait m aider?
    Merci d avance

  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 : 44
    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
    A ta place, j'essaierai quelque chose de ce genre :
    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
    my $preced = '';
     
    while (my $line = <$fh>){
     
    	# si la ligne ne contient que econdes
    	# on l'ajoute à la ligne précédente
    	# et on l'écrit
    	if ($line =~ /^econdes$/){
     
    		chomp $preced;
    		$preced .= $line;
    		print $preced;
     
    		# on vide la valeur qui a été écrite
    		$preced = '';
     
    	}
    	# on retient dans $preced la valeur de la ligne précédente
    	else{
    		# si la valeur de la ligne précédente n'a pas encore été écrite
    		# car elle fait partie des lignes ne devant pas être allongées
    		# on l'écrit
    		if ($preced ne ''){
    			print $preced;
    		}
     
    		$preced = $line;
    	}	
    }
    J'ai modifié le script afin qu'il tienne compte des lignes non scindées qu'il faut garder telles qu'elles.
    -- Jasmine --

  3. #3
    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 : 44
    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
    ... et au lieu de mettre if ($preced ne ''), il vaudrait mieux mettre un mot clé que tu ne retrouveras pas dans ton texte afin que les lignes vides ne soient pas traitées comme des lignes ayant été écrites lors du tour précédent.
    -- Jasmine --

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 40
    Points
    40
    Par défaut
    Merci Jasmine,
    J ai essayé avec ton code mais ca ne marche pas. Les lignes ne sont tjrs pas combinés
    Merci

  5. #5
    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 : 44
    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
    L'idée est de garder en mémoire la valeur de la ligne précédente afin de l'allonger si besoin. Ne peux-tu pas adapter ce script à ton texte?
    Peux-tu mettre ton texte en ligne?
    -- Jasmine --

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 40
    Points
    40
    Par défaut
    le texte m est livré du serveur. j ai essayé d utiliser la function chomp() sans succes.

  7. #7
    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 : 44
    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
    Citation Envoyé par blaise4714 Voir le message
    le texte m est livré du serveur. j ai essayé d utiliser la function chomp() sans succes.
    A mais ce n'est donc pas un texte que tu ouvres et lis ligne par ligne ... pas étonnant que le script ne fonctionne pas.
    -- Jasmine --

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    106
    Détails du profil
    Informations personnelles :
    Localisation : Suisse

    Informations forums :
    Inscription : Novembre 2006
    Messages : 106
    Points : 40
    Points
    40
    Par défaut
    Le serveur me livre un fichier .txt, que j ouvre et puis extrait les informations.
    Malheureusement, le probleme cité ci dessous me donne du fil à retordre.
    Merci

Discussions similaires

  1. Lire les lignes d'un fichier avec csh
    Par nicolas581 dans le forum Linux
    Réponses: 4
    Dernier message: 24/03/2010, 16h38
  2. Fusionner toutes les lignes d'un fichier
    Par _Mac_ dans le forum Linux
    Réponses: 2
    Dernier message: 02/12/2005, 14h18
  3. Réponses: 14
    Dernier message: 19/11/2005, 18h56
  4. Afficher les lignes d'un fichier
    Par pepere73 dans le forum C++
    Réponses: 16
    Dernier message: 21/02/2005, 22h25
  5. Réponses: 3
    Dernier message: 26/04/2004, 12h51

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