2014-10-29 41 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