Я опубликовал это вчера на SO, и я получил ответ, который отлично работает, но мне нужно изменить его, и я не знаю, как это сделать.Условно убрать последнюю строку из текстового файла
Вот мой original question:
Мне нужно лишить последнюю строку из текстового файла. Я знаю, как открывать и сохранять текстовые файлы на C#, но как бы я разделил последнюю строку текстового файла?
Текстовый файл всегда будет иметь разные размеры (некоторые из них имеют 80 строк, некоторые из них - 20).
Как это сделать?
Вот код, который кто-то дал мне это сделать (который работает отлично)
//Delete the last line from the file. This line could be 8174, 10000, or anything. This is from SO
string tempfile = @"C:\junk_temp.txt";
using (StreamReader reader2 = new StreamReader(newfilename))
{
using (StreamWriter writer2 = new StreamWriter(tempfile))
{
string line = reader2.ReadLine();
while (!reader2.EndOfStream)
{
writer2.WriteLine(line);
line = reader2.ReadLine();
} // by reading ahead, will not write last line to file
}
}
File.Delete(newfilename);
File.Move(tempfile, newfilename);
File.Delete(tempfile);
Как бы я изменить это только удалить последнюю строку из текстового файла, если это строка размером 4 или 5 цифр (например, 8001 или 99999).
Если это ничего, кроме этого, например%, то я не хочу удалять последнюю строку.
Может кто-то изменить приведенный выше код, чтобы сделать это для меня?
Я думаю, вам нужно окончательное $ в вашем регулярном выражении, чтобы оно не соответствовало строке, начинающейся с 4 цифр. –
@Mike Pelley, Ах спасибо! Я исправил это соответственно. –
Удивительный. Спасибо. – fraXis