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

Ruby Discussion :

Ecrire sur une ligne dans un fichier texte


Sujet :

Ruby

  1. #1
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 8
    Points
    8
    Par défaut Ecrire sur une ligne dans un fichier texte
    Bonjour à tous,

    Je m'explique, j'ai un fichier texte dans lequel j'ai plusieurs ligne et j'aimerais écrire sur une certaine ligne en la remplaçant.

    structure du fichier texte :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    ligne 1
    ligne 2
    ligne 3
    ligne 4
    et je voudrais remplacer "ligne 2" par "bonjour" par exemple en gardant le saut de ligne.

    Merci d'avance !

  2. #2
    Membre averti Avatar de Kennel sébastien
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2008
    Messages
    226
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Septembre 2008
    Messages : 226
    Points : 329
    Points
    329
    Par défaut
    Grossièrement nous pouvons faire :
    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
    donnees = ''
    fichier = File.open('monFichier.txt', 'r')
    fichier.each {|ligne|
        if fichier.lineno == 2
            ligne = 'bonjour' + "\n"
        end
     
        donnees += ligne
    }
     
    fichier.close
     
    fichier = File.open('monFichier.txt', 'w+')
    fichier.write(donnees)
    fichier.close

  3. #3
    Invité
    Invité(e)
    Par défaut
    Salut,

    Si le fichier est court, une solution est de lire toutes les lignes, remplacer la deuxième et tout réécrire.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    lines = File.readlines('file.txt')
    lines[1] = "bonjour\n"
    File.open('file.txt', 'w') do |f|
      lines.each { |l| f.write(l) }
    end
    Les lignes pour l’écriture peuvent être remplacées par la suivante.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    File.open('file.txt', 'w') { |f| f.write(lines.join) }

  4. #4
    Futur Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2017
    Messages
    11
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vendée (Pays de la Loire)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mai 2017
    Messages : 11
    Points : 8
    Points
    8
    Par défaut
    Merci tout les deux pour votre temps

    Vos deux technique ont fonctionné, mais je comprends pas tout a fait comment , si vous pouviez m'expliquer ?

    Encore merci !

  5. #5
    Invité
    Invité(e)
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    lines = File.readlines('file.txt')
    lines[1] = "bonjour\n"
    File.open('file.txt', 'w') { |f| f.write(lines.join) }
    Ligne 1, on lit les lignes du fichier, on les récupère dans le tableau lines.
    Ligne 2, on remplace la seconde case du tableau par "bonjour\n".
    Ligne 3, on ouvre le fichier et on écrit les éléments du tableau lines dedans. Vu qu’on a modifié la seconde case, la seconde ligne du fichier texte est modifiée.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 01/10/2011, 09h56
  2. supprimer une ligne dans un fichier texte
    Par linouline dans le forum Langage
    Réponses: 5
    Dernier message: 05/06/2006, 23h02
  3. Supprimer une ligne dans un fichier texte
    Par @yoyo dans le forum Entrée/Sortie
    Réponses: 11
    Dernier message: 28/03/2006, 14h19
  4. Supprime une ligne dans un fichier texte
    Par dev7 dans le forum Linux
    Réponses: 4
    Dernier message: 28/03/2006, 01h33
  5. Supprimer une ligne dans un fichier text
    Par philippe13 dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 14/03/2006, 16h43

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