none
C# Copier des lignes spécifiques d'un fichier texte vers un autre en utilisant StreamReader et StreamWriter RRS feed

  • Question

  • Bonjour voici un code qui me permet de copier certaines lignes d'un fichier texte vers un autre; Dans mon cas je souhaite copier toutes les lignes commençant par le lettre E. Mon code fonctionne a ceci prêt qu'il copie uniquement le dernière ligne contenant un E et non pas toutes les lignes comme je le souhaite.

    Voici un extrait du fichier texte et le code :

     static void Main(string[] args)
            {
                Console.WriteLine("Appuyez sur Entrée pour exécuter le code");
                Console.ReadLine();
    
                string file = @"C:\Dropbox\ordi.txt";
                string fileCopied = @"C:\Users\collo\Desktop\TestCopy.txt";
                using (var reader = new StreamReader(file))
                {
                    while (!reader.EndOfStream)
                    {
                        string line = reader.ReadLine();
                        if (line.StartsWith("E"))
                        {
                            using(StreamWriter sw=new StreamWriter(fileCopied))
                            {
                                sw.WriteLine(line);
                            }
                        }
                    }
                }
            }


    JF Collombet ® CreateSpecificCulture

    mercredi 30 mai 2018 16:32

Réponses

  • Car tu re-crées le fichier destination à chaque fois.

    Mets le StreamWriter en dehors, genre :

    string file = @"E:\E.txt";
    string fileCopied = @"E:\TestCopy.txt";
    using (StreamWriter sw = new StreamWriter(fileCopied))
    using (var reader = new StreamReader(file))
    {
        while (!reader.EndOfStream)
        {
            string line = reader.ReadLine();
            if (line.StartsWith("E"))
            {                           
                    sw.WriteLine(line);                            
            }
        }
    }


    jeudi 31 mai 2018 06:36