2014-10-29 42 views
1

我想使用vb.net編輯文本文件中的特定行。下面 例子是我在文本文件中的數據:如何編輯文本文件中的一行數據

Port1.txt

數據1

數據2

數據3

DATA4

數據5

DATA6

數據7

我想編輯的文本文件dataXX數據5(5號線)。我怎麼做?

到目前爲止,通過使用下面的代碼,我只能訪問列出的所有數據而不是行數據。

Dim path As String = "c:\Users\EliteBook\Desktop\Port1.txt" 

    Dim readText() As String = File.ReadAllLines(path) 
    Dim s As String 
    For Each s In readText 
     MsgBox(s) 
    Next 

這將使我在msgbox中輸出文本文件中列出的所有數據。我如何訪問特定的數據行而不是全部數據?我已經編輯了這個問題根據Nahum利特文建議通過here

回答

2

內厄姆的答案是正確的,但它在C#。下面是對應的VB.NET,使用你在你的問題發佈的代碼數據:

Dim path As String = "c:\Users\EliteBook\Desktop\Port1.txt" 
Dim readText As String() = File.ReadAllLines(path) 
readText(4) = "dataXX" 
File.WriteAllLines(path, readText) 

上面的代碼讀取文件到字符串數組,每個元素一行。然後它改變了元件4(第5行),以「dataXX」,在這行代碼:

readText(4) = "dataXX" 

然後將其保存在陣列迴文件,與第5行讀「dataXX」。

2

你使用錯誤的方法。

http://msdn.microsoft.com/en-us/library/s2tte0y1(v=vs.110).aspx

approxemently這樣我也沒有編譯器在手

string path = @"c:\temp\MyTest.txt"; 
string[] readText = File.ReadAllLines(path); 
string[4] = "new data"; 
File.WriteAllLines(path, readText); 
+0

我編輯了這個問題。 ReadAllLines允許我讀取文本文件中的所有數據。我如何指定停止的地方?另外,我不明白他們爲什麼使用Dim s作爲字符串和每個s。 – 2014-10-29 06:46:31

+0

'File.ReadAllLines'返回一個字符串數組,每行一個數組元素。沒有「停止」 - 它將整個文件讀入數組中。你可以通過數組中相應的索引來訪問你想要的行 - 但是不要忘記數組是基於零的,所以第5行應該是數組中的索引4。 – Tim 2014-10-29 06:50:08

+0

@Tim,那麼我如何訪問數組,因爲當我使用MsgBox(s(0))。它導致顯示第0列的數據,即「d」。 – 2014-10-29 06:58:46