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

C# Discussion :

Modifier ligne d'un fichier texte


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Par défaut Modifier ligne d'un fichier texte
    Salut,

    Je cherche à modifier la ligne d'un fichier texte après un clic sur OK.
    Voilà le code complet:
    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
    private void buttonOK_Click(object sender, EventArgs e)
            {
                string recette = textBoxSaisieRecette.Text;
                string nombreMax = textBoxSaisieNombreParCont.Text;
     
                //on remplace le nombre de BU par container            
                StreamReader reader = new StreamReader("Recettes_BU.txt");
                string ligneLue;
                do
                {
                    ligneLue = reader.ReadLine();
                    if (ligneLue == textBoxSaisieRecette.Text)
                    {
                        //on se décale de 2 lignes plus bas
                        ligneLue = reader.ReadLine();
                        ligneLue = reader.ReadLine();
     
                        //on remplace la ligne
                        ligneLue = ligneLue.Replace(ligneLue, textBoxSaisieNombreParCont.Text);
                        break;
                    }
                } while ((ligneLue != null) || (ligneLue != textBoxSaisieRecette.Text));
                reader.Close();
            }

    Ce code ne marche pas, le fichier texte n'est pas mis à jour.

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    StreamReader = lecture d'un flux. Donc ça ne permet pas d'écrire dans un flux.

    Si ton fichier n'est pas trop volumineux tu peux charger l'ensemble des lignes en mémoire (méthode File.ReadAllLines), modifier les lignes que tu veux et enfin réécrire l'ensemble dans le fichier (méthode File.WriteAllLines).

    Sinon, il faut lire ligne à ligne (comme avec ton code) et pour chaque ligne la réécrire dans un autre fichier (avec un StreamWriter). A la fin tu remplaces le fichier de départ par le nouveau.

  3. #3
    Membre confirmé
    Inscrit en
    Mars 2007
    Messages
    224
    Détails du profil
    Informations forums :
    Inscription : Mars 2007
    Messages : 224
    Par défaut
    Salut,

    En effet je venais de m'apercevoir de ça.
    Je vais prendre la seconde méthode.

    Merci.

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 18/06/2009, 15h27
  2. Insérer une ligne dans un fichier texte sans modifier l'encodage
    Par Benzeghiba dans le forum Framework .NET
    Réponses: 6
    Dernier message: 26/01/2009, 22h34
  3. [vb.net]Modifier une ligne d'un fichier texte
    Par Ykaar dans le forum VB.NET
    Réponses: 5
    Dernier message: 27/11/2008, 17h00
  4. Modifier une ligne d'un fichier texte?
    Par ecarbill dans le forum VB 6 et antérieur
    Réponses: 2
    Dernier message: 14/05/2007, 18h51
  5. Modifier une ligne d'un fichier texte
    Par lauben dans le forum C
    Réponses: 2
    Dernier message: 27/05/2006, 12h45

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