2016-09-28 86 views
-3

我有這樣C#如何追加行文本文件結尾的文本?

IPen ID,Datetime,Status,Data Received 

文本文件是可以行的末尾添加一些word。我想追加一些word所以最後的結果是:

IPen ID,Datetime,Status,Data Received,Data Reply 

我已經在瀏覽和搜索,結果只顯示在新行追加的文本,但是那不是我想要的,我想要追加行結束文本。對我有什麼建議?

+0

文件是否總是有單行(我的意思是單行)? –

+0

no sir,該文件動態添加。但我只想在行的末尾添加一個單詞,先生怎麼樣? – yosafat

+0

哪一行結束?你打算如何選擇行? –

回答

1

你可以在這樣的現有文件的末尾添加文本:

 using (var stream = new StreamWriter("Your file path here")) 
     { 
      stream.Write("Your text here"); 
     } 

這種方法將在新添加的文本只有在文件末尾已經有行尾字符的情況下才行。否則,它將添加在同一行上。

這也會在文件的末尾添加文本,如果您需要選擇行或插入符合特定條件的所有行,它會稍微複雜一些,但是如果您告訴您我正是你所需要的。

編輯:既然你需要添加一個行的中間文本,我們應該讀所有的行,然後更改並保存迴文件:

 // Define your file path. 
     var filePath = "Your file path here"; 

     // Fill an array with the lines from the txt file. 
     var txtLines = File.ReadAllLines(filePath); 

     // Change all lines into what you want. 
     var changedLines = ChangeLines(txtLines); 

     // Write the file with all the changed lines. 
     File.WriteAllLines(filePath, changedLines); 

這是如何改變線路:

public static IEnumerable<string> ChangeLines(IEnumerable<string> lines) 
    { 
     foreach (var line in lines) 
     { 
      yield return line.Replace("A C", "A B C"); 
     } 
    } 

這將用「ABC」代替所有「AC」的出現。如果您想在某些文本之後添加內容,之前將內容分成兩行或任何您想要的內容,則可以更改此方法以執行所需操作,並將所有更改保存迴文件中。我希望有所幫助。

+0

我們可以在句子的中間追加文字嗎? 舊文本:A C 新文本:A B C – yosafat

+0

是否有可能? – yosafat

+0

是的,這是可能的,但可能需要閱讀整個文件,改變你想要的,然後重寫它。我會立即查找並更新答案。 –

2

這不太清楚你要問什麼,但聽起來好像你在說文本中有文字"IPen ID,Datetime,Status,Data Received"的任何一行應該被替換爲文本"IPen ID,Datetime,Status,Data Received,Data Reply"

如果是這樣的話,那麼此代碼的工作:

File 
    .WriteAllLines(@"path", 
     File 
      .ReadAllLines(@"path") 
      .Select(x => 
       x + (x == "IPen ID,Datetime,Status,Data Received" ? ",Data Reply" : ""))); 
+0

此代碼顯示無效參數錯誤 – yosafat

+0

@yosafat - 我在發佈之前測試過。你能更具體地瞭解代碼中的哪一部分有錯誤,以及錯誤是什麼? – Enigmativity