Pour un projet que je fais, l'une des choses que je dois faire est de supprimer les premières lignes X d'un fichier texte. Je dis X parce que j'aurai besoin de faire cette routine plusieurs fois et chaque fois, les lignes à supprimer seront différentes, mais ils commenceront toujours depuis le début, supprimer le X d'abord et ensuite sortir les résultats à le même fichier.Comment supprimer les premières lignes "X" d'un fichier texte?
Je pense à faire quelque chose comme ça, que je Rassemblé d'autres tutoriels et des exemples que je lis:
String line = null;
String tempFile = Path.GetTempFileName();
String filePath = openFileDialog.FileName;
int line_number = 0;
int lines_to_delete = 25;
using (StreamReader reader = new StreamReader(originalFile)) {
using (StreamWriter writer = new StreamWriter(tempFile)) {
while ((line = reader.ReadLine()) != null) {
line_number++;
if (line_number <= lines_to_delete)
continue;
writer.WriteLine(line);
}
}
}
if (File.Exists(tempFile)) {
File.Delete(originalFile);
File.Move(tempFile, originalFile);
}
Mais je ne sais pas si cela fonctionnerait à cause de petites choses comme les numéros de ligne à partir de la ligne 0 ou autre ... aussi, je ne sais pas si c'est un bon code en termes d'efficacité et de forme.
Merci beaucoup.
Cela fonctionne parce que quand je fais reader.ReadLine() à nouveau, il reprend la lecture là où il avait laissé, non? Si je voulais faire un autre lecteur appelé "lecteur" (comme ce serait dans une plus grande boucle qui répéterait ce processus plusieurs fois) je voudrais juste fermer "lecteur" et puis quand j'en ai fait un autre, il commencerait retour du début du fichier, correct? – ankushg
@Unk, oui, aux deux questions dans ce commentaire. –
Merci beaucoup! – ankushg