我想根據特定輸出將數據添加到文本文件中,它將讀取XML文件並將特定行寫入文本文件。如果數據已經寫入文本文件,我不想再寫一遍。如何在文本文件中不包含數據(如果已經存在)
代碼:
public void output(string folder)
{
string S = "Data" + DateTime.Now.ToString("yyyyMMddHHmm") + ".xml";
//Trades.Save(S);
string path = Path.Combine(folder, S);
Console.WriteLine(path);
XDocument f = new XDocument(Trades);
f.Save(path);
string[] lines = File.ReadAllLines(path);
File.WriteAllLines(path, lines);
using (System.IO.StreamWriter file = new System.IO.StreamWriter(@"H:\Test" + DateTime.Now.ToString("yyMMdd") + ".txt", true))
{
foreach (string line in lines)
{
if (line.Contains("CertainData"))
{
file.WriteLine(line);
if (File.ReadAllLines(path).Any(x => x.Equals(line)))
{
}
else
{
string[] tradeRefLines = File.ReadAllLines(path);
File.WriteAllLines(path, tradeRefLines); ;
}
}
}
}
}
問題是,它仍然會寫行,即使數據是完全一樣的其他地方。我不想複製線
有什麼建議嗎?
澄清UPDATE
的「CertainData」是一個參考號碼
我有一大堆的文件,這些文件中有數據和一塊我想單獨和放入文本文件「 CertainData」領域,這將有一個參考號碼
有時候我發將裏面的相同的格式化信息與文件‘在他們的CertainData’出現供參考
當我運行這個程序時,如果文本文件中已經包含「CertainData」參考編號,我不希望它被寫入
如果您需要任何更多的澄清讓我知道,我會更新帖子
你的意思是你不想寫重複的行到一個文件? – kkaosninja
如果你必須檢查它是否存在*在所有文檔中*而不是在每行中,那麼使用ReadAllText,它將只返回一個字符串,然後Contains會給你你期待的結果 – Gusman
@kkaosninja是的,對不起,如果我沒有足夠清楚 – Nonagon