Для проекта, который я делаю, одна из вещей, которую я должен сделать, это удалить первые строки X строк открытого текстового файла. Я говорю X, потому что мне нужно будет выполнять эту процедуру несколько раз и каждый раз, строки для удаления будут разными, но они всегда будут начинаться с начала, удалять первый X, а затем выводить результаты на тот же файл.Как удалить первые строки «X» текстового файла?
Я имею в виду сделать что-то вроде этого, что я кусочки из других руководств и примеров, которые я прочитал:
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);
}
Но я не знаю, если это будет работать из-за мелочи, как номера строк начиная с строки 0 или еще чего ... Кроме того, я не знаю, хороший ли код с точки зрения эффективности и формы.
Спасибо, кучка.
Это работает, потому что, когда я снова сделать reader.ReadLine(), он возобновляет чтение, где она была прервана, не так ли? Если бы я хотел сделать другого читателя под названием «читатель» (так как это было бы в более крупном цикле, который повторял бы этот процесс несколько раз), мне просто нужно было бы закрыть «читателя», а затем, когда я сделаю еще один, он начнет назад с начала файла, правильно? – ankushg
@Unk, да, на оба вопроса в этом комментарии. –
Спасибо! – ankushg