Bonjour
J'ai une liste de fichier texte (des centaines de fichier);
Je voudrai faire un programme qui lit les fichier un à un et modifier certains information dans tous les lignes. Donc:
1.Je crée un fichier tmp pour chaque fichier existant.
2. je lit chaque fichier ligne à ligne je modifier et j'écris dans le fichier tmp.
3. je supprime le fichier existant.
4. Je renomme le fichier tmp.
ma question est ce que c'est le bon algorithme car l'exécution c'est long. est ce que il y a d'autre moyenne à faire la modification sans passer par un fichier tmp.

voila le code que j'utilise
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
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
 
....
            StreamReader sr = null;
            StreamWriter sw = null;
            System.Text.Encoding ANSI = System.Text.Encoding.GetEncoding(1252); 
            string ligne;
            try
            {
                //fichier Sitetic
                for (int i = 0; i < fichierSitetic.Length; i++)
                {
                    cheminFichier = fichierSitetic[i];
                    fichierTmp = cheminFichier.Replace(".txt", "_tmp.txt");
                    sr = new StreamReader(cheminFichier);
                    sw = new StreamWriter(fichierTmp,true,ANSI);
                    ligne = sr.ReadLine();                    
                    while (ligne != null)
                    {
                        if (numLigne == 0) sw.WriteLine(ligne);     
                        else
                        {
                            string [] tabLigne = ligne.Split(';');
                            tabLigne[3] = "999";
                            tabLigne[4] = "MIM";
                            //transformer une table à un string 
                            string nouvLigne = string.Join(";", tabLigne);
                            sw.WriteLine(nouvLigne);
                        }
                        ligne = sr.ReadLine();
                        numLigne++;                       
                    }
                    sr.Close();
                    sw.Close();
                    File.Delete(cheminFichier);
                    File.Move(fichierTmp, cheminFichier);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
            finally
            {
                // Fermeture streamreader
                if (sr != null) sr.Close();
                // Fermeture streamwriter
                if (sw != null) sw.Close();
            }
merci d'avance.