我昨天在SO上发布了这个消息,我收到了一个很好的答案,但我需要改变它,并且我不知道该如何解决。有条件地去掉文本文件中的最后一行
我需要剥去从文本文件的最后一行。我知道如何在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位开头的行。 – 2010-05-21 20:55:51
@Mike Pelley,啊谢谢!我相应地修复了它。 – 2010-05-21 20:59:43
太棒了。非常感谢。 – fraXis 2010-05-21 21:18:31