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 :

Ecriture en fin de ligne


Sujet :

Langage Perl

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par défaut Ecriture en fin de ligne
    Bonjour,

    Je m'excuse d'avance pour les accents, mais j'ai un clavier QWERTY.

    Je cherche un moyen d'ecrire dans un fichier a la fin d'une ligne deja ecrite. Je m'explique. J'ai un fichier texte.txt tel que celui-ci:

    0.8___1.3___0.8
    1.5___1.6___0.8
    7.9___5.8___2.6
    ... ___... ___...

    (les __ symbolisent en fait des espaces)

    et en fait je voudrait rajouter une colonne (ou plusieurs) pour obtenir (la valeur des nombres est prise au hasard):

    0.8___1.3___0.8___1.2
    1.5___1.6___0.8___2.5
    7.9___0.8___2.6___1.3
    ... ___ ...___ ...___ ...

    (idem qu'en haut pour les ___)

    Donc je cherche un moyen de reprendre chaque ligne et d'ecrire ce que je veux a la fin, sans tout reecrire a chaque fois si c'est possible.

    Si quelqu'un pourrais m'aider ce serai cool. Merci d'avance

  2. #2
    Membre Expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 55
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Par défaut
    Citation Envoyé par kamshaa
    Donc je cherche un moyen de reprendre chaque ligne et d'ecrire ce que je veux a la fin, sans tout reecrire a chaque fois si c'est possible.

    Si quelqu'un pourrais m'aider ce serai cool. Merci d'avance
    D'une façon ou d'une autre, il faudra tout ré-écrire, puisque au niveau du texte du fichier il y faudra décaler la suite à chaque ajout d'une colonne à une ligne.

    Le fichier est un flux unidimensionnel contrairement à la présentation en tableau qui est bidimensionnelle ...

    Une solution un peu bourrine consiste à lire le fichier ligne à ligne, ajouter les valeurs à chaque ligne lue, puis à les ré-écrire dans un fichier de sortie.

    Voici un peu d'inspiration :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    while ...
    {
      $ligne_in = <IN>;
      chomp ($ligne_in);
      $ligne_out = "$ligne_in $valeur_supplementaire\n";
      print OUT $ligne_out;
    }

  3. #3
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par défaut
    Bonjour,

    ouais, c'est ce que je pensais faire, mais comme je trouvais ca (ya pas de cedille sur les qwerty non plus ) bourrin justement, je me suis dit que des gens plus forts que moi auraient pitetre une idee.

    Je vais faire comme ca en attendant alors.

    Merci

  4. #4
    Expert confirmé
    Avatar de Jedai
    Homme Profil pro
    Enseignant
    Inscrit en
    Avril 2003
    Messages
    6 245
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Avril 2003
    Messages : 6 245
    Par défaut
    Citation Envoyé par 2Eurocents
    Une solution un peu bourrine consiste à lire le fichier ligne à ligne, ajouter les valeurs à chaque ligne lue, puis à les ré-écrire dans un fichier de sortie.
    C'est pas bourrin, c'est la meilleure solution... La plus robuste, et la plus rapide aussi très probablement ! Cette solution marchera toujours quelle que soit la taille du fichier et n'encombrera jamais la mémoire. L'édition "sur place" de ce fichier exigerait soit qu'on avale la totalité du fichier pour ensuite le réécrire en entier (ce qui pose problème si le fichier est très gros, et n'est pas plus rapide que le précédent), soit qu'on mette en place une solution très complexe à base de buffers et de mémorisation d'une partie du contenu du fichier en avance puis de réécriture... Un cauchemar à mettre en place !! A la limite tu peux essayer de faire un benchmark entre la solution de 2Eurocents et une solution à base de Tie::File (qui reviendrait à la dernière solution, mais sans la complexité).
    Personnellement je me contenterais de la solution de 2Eurocent : elle est claire, efficace, maintenable et facilement extensible.

    --
    Jedaï

  5. #5
    Membre averti
    Inscrit en
    Mai 2006
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Mai 2006
    Messages : 11
    Par défaut
    oki, je vais faire comme ca alors.

    Merci pour les conseils et pour la rapidite des reponses.

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

Discussions similaires

  1. [JDOM] caractère unicode de fin de ligne
    Par iceman dans le forum Format d'échange (XML, JSON...)
    Réponses: 4
    Dernier message: 31/03/2009, 03h15
  2. Probleme de caractere de fin de ligne
    Par mask66 dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 20/07/2005, 14h09
  3. Fin de ligne dans un fichier
    Par Neekow dans le forum Langage
    Réponses: 6
    Dernier message: 03/06/2005, 19h54
  4. Réponses: 2
    Dernier message: 06/12/2004, 11h44

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