使用制表符和回车符格式读取文本文件,将它们存储在数组中

时间:2009-07-01 03:43:32

标签: vb.net

我必须使用以下格式的文本文件:

Word [tab] [tab] Word [回车]
Word [tab] [tab] Word [回车]
Word [tab] [tab] Word [回程]

我希望将标签前的所有单词放到一个数组中,或者创建一个新的文本文件,将标签后的所有单词放到另一个数组中,或创建一个新的文本文件。

这是我的函数,用于将tab之前的单词转换为数组:

受保护的子MakeWordListBeforeTab()

    Dim filename As String = "D:\lao\00001.txt"

    'read from file'
    Dim MyStream As New StreamReader(filename)

    'words before tab
    Dim WordBeforeTabArr() As String = MyStream.ReadToEnd.Split(CChar("\t"))
    MyStream.Close()

    'test to see the word in array
    For d As Integer = 0 To WordBeforeTabArr.Length - 1
        MsgBox(WordBeforeTabArr(d))
    Next

End Sub

我写了上面的函数来获取tab之前的所有单词,但是我把所有单词都放到了数组中。我一直在尝试使用上面的Split方法。拆分这些词的另一种方法是什么?有人能告诉我一些代码来完成这项工作吗?

我知道这可以用正则表达式完成,但我还不知道正则表达式。如果你能告诉我如何用正则表达式完成它,那将是非常棒的。感谢。

2 个答案:

答案 0 :(得分:2)

您可以在String上尝试拆分功能。它可以像这样使用:

Dim lines() As String = IO.File.ReadAllLines(filename)
For Each line As String In lines
    Dim words() As String = _
     line.Split(New Char() {vbTab}, StringSplitOptions.RemoveEmptyEntries)
Next

每行的单词数组将是两个单词。每个位置一个字。在循环中拆分输入文件的行时,可以填充两个数组或将值写入文本文件或文件。

答案 1 :(得分:0)

首先,上面的代码没有编译:请参阅以下正确的代码:

Dim lines() As String = IO.File.ReadAllLines(test_Filename)
For Each line As String In lines
  Dim words() As String = _
   line.Split("\t".ToCharArray()(0), StringSplitOptions.RemoveEmptyEntries)
Next