我昨天在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