Modification fichier Texte
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:
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.