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 :

PERL - Ecrire en colonne dans un fichier et non en ligne


Sujet :

Langage Perl

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut PERL - Ecrire en colonne dans un fichier et non en ligne
    Bonjour à tous,

    J'ai un petit souci que voilà :

    Je souhaiterai copier des données dans un fichier.
    Cependant les données que j'ajoute, il faudrait qu'elles "repartent du haut du fichier" : sur une nouvelle colonne.

    Par exemple :

    Voilà mon fichier avant la copie :

    1
    2
    3
    4
    5

    et je souhaiterai copier de nouvelles valeurs (a,b,c,d,e) dedans non pas à la suite mais sur une nouvelle colonne (après un test if), pour obtenir ceci :

    1 a
    2 b
    3 c
    4 d
    5 e


    Pour le moment j'ai un code PERL tq:

    open(OUT, '>outall.txt') || die ("Erreur d'ouverture du fichier");
    ....
    while <>
    {

    my $lignecomplete2 = $_ ;
    my @maligne2 = split(/\s+/,$lignecomplete2);
    print OUT "$maligne2[3]\t\n"; <<<<< ligne à modifier pour obtenir une copie sur une nouvelle colonne

    }

    Y-a-t-il qqun pour m'éclairer ?
    J'espère avoir été clair.
    Merci d'avance pour vos réponses.
    Cdlt.

  2. #2
    Membre actif

    Profil pro
    Inscrit en
    Août 2009
    Messages
    156
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Août 2009
    Messages : 156
    Points : 211
    Points
    211
    Par défaut
    Bonjour,

    Je passerais par un fichier temporaire:
    - boucle en lecture sur ton fichier.txt
    - pour chaque ligne
    - génération de la nouvelle ligne dans fichier.txt.tmp
    - sauvegarde de l'ancienne version de fichier.txt
    - move de fichier.txt.tmp en fichier.txt
    Si la volumétrie de données permet de fonctionner comme ça, c'est plus simple que de modifier le fichier à la volée (d'ailleurs je ne vois pas très bien comment le faire directement).

  3. #3
    Expert confirmé

    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Avril 2009
    Messages
    3 577
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2009
    Messages : 3 577
    Points : 5 753
    Points
    5 753
    Par défaut
    Si le traitement est simple, tu peux le faire en uniligne avec les options -p -i

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    perl -i -pe 's/$/" ".$number++/e' toto.txt
    Cette commande ajoute un espace est un numéro à la fin de chaque ligne du fichier toto.txt.

  4. #4
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Problème résolu.

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

Discussions similaires

  1. Ecrire une colonne dans un fichier texte
    Par neutrino314 dans le forum VBA Access
    Réponses: 3
    Dernier message: 29/09/2009, 08h31
  2. Ecrire des vecteurs colonnes dans un fichier text
    Par Ballim dans le forum MATLAB
    Réponses: 6
    Dernier message: 14/11/2008, 09h08
  3. Ecrire un CLOB dans un fichier sans fin de ligne
    Par tedparker dans le forum SQL
    Réponses: 3
    Dernier message: 20/07/2007, 10h05
  4. [débutant] nombre de colonne dan sun fichier csv
    Par mandagor dans le forum C++
    Réponses: 18
    Dernier message: 15/06/2005, 15h42
  5. [langage] [PERL] prendre des infos dans un fichier log
    Par osiris73 dans le forum Langage
    Réponses: 2
    Dernier message: 24/05/2005, 16h42

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