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
merci d'avance.
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(); }
Partager