2012-05-25 47 views
3

我當前使用的將字符串插入到文本文件中的過程是讀取文件並在我將文件再次寫入時修改它,這似乎是每個人正在這樣做。使用.net在txt中的特定位置插入一行

由於.net有這樣一個不同的庫,我想知道是否有一個特定的命令插入一個字符串在特定的行在一個txt文件。

我會想象它會是這個樣子:

dim file as file 
file.open("filePath") 

file.insert(string, location) 'this isn't actually an option, I tried 

回答

8

沒有,沒有什麼是專做在.NET。

你可以做到這一點很簡單如果你快樂閱讀文本的所有行:

var lines = File.ReadAllLines("file.txt").ToList(); 
lines.Insert(location, text); 
File.WriteAllLines("file.txt", lines); 

這將是在內存方面更有效地編寫代碼,在複製訂單一次,在複製時將新行插入正確的位置,但這樣做會更有效。如果你知道你的文件會很小,我會去上面。

+0

是的,這看起來像我以後。我的位置會變得更長一些,因爲位置不同,我必須在閱讀過程中找到位置。 – Aeropher

1

您可以簡單地將所有文本讀入字符串,然後使用字符串insert方法(例如,

File.WriteAllText("file.txt", File.ReadAllText("file.txt").Insert(startIndex, "value")); 
+0

與其他答案類似的概念,但使用列表看起來更清晰,並允許我做一個list.contains(「text」)來查找我需要的位置。 – Aeropher

+0

請注意,由於您閱讀了所有行,所以list.Contains(「text」)對於與「text」完全匹配的行將會是true。這可能正是你需要的,如果你需要匹配子字符串行,你會做一些像list.Where(線=> line.Contains(「文本」))任何() –

+0

哈我剛剛發現了這一點,我打算做一個「對於列表中的每個項目」「如果instr(項目,」文本「)​​」,但你的方式似乎要短得多 – Aeropher

相關問題