0

这是我用于读取 txtfile 并将其放入 datagridview 的代码

Dim filename As String = String.Empty
Dim TextLine As String = ""
Dim SplitLine() As String


    ofd1.Filter = "txt files (*.txt)|*.txt|All files (*.*)|*.*"
    ofd1.FilterIndex = 2
    ofd1.RestoreDirectory = True
    ofd1.Title = "Open Text File"

    'get the filename of the txt file
    If ofd1.ShowDialog() = DialogResult.OK Then
        filename = ofd1.FileName
    End If

    'if the filename is existing
    If System.IO.File.Exists(filename) = True Then

        Dim objReader As New System.IO.StreamReader(filename)

        Do While objReader.Peek() <> -1
            TextLine = objReader.ReadLine()
            SplitLine = Split(TextLine, ",")
            dvList.Rows.Add(SplitLine)
        Loop

    End If

这是txt文件:

False, 1-305-9097-01-2, 879.75, 122009, fr
False, 1-305-9097-02-2, 879.75, 122009, fr
False, 1-305-9097-02-3, 879.75, 122009, fr
False, 1-305-9097-03-5, 899.75, 122009, fr

现在我只想获取我的 txtfile 的第一条记录并将其放在 msgbox 中,我该怎么做?

我试过这个:

MsgBox(SplitLine.tostring)

但是这段代码的输出是这样的:System.String[]

谢谢你。

4

4 回答 4

1

您可以在没有 2 个单独的阅读器的情况下完成此操作,因为您已经拥有可用的价值。

Dim objReader As New System.IO.StreamReader(filename)
Dim lineCount as Integer 'lines read so far in file

Do While objReader.Peek() <> -1
    TextLine = objReader.ReadLine()
    If lineCount = 0 Then msgbox(TextLine) 'will show msgbox in first iteration
    SplitLine = Split(TextLine, ",")
    dvList.Rows.Add(SplitLine)
    lineCount = lineCount + 1 'increment lineCount
Loop
于 2013-09-19T05:47:46.497 回答
1

Dim First as Boolean = True

像这样编辑循环:

Do While objReader.Peek() <> -1
    TextLine = objReader.ReadLine()
    If First Then MessageBox(TextLine) : First = False
    SplitLine = Split(TextLine, ",")
    dvList.Rows.Add(SplitLine)
Loop
于 2013-09-19T05:39:53.600 回答
0

我已经为此编写了一个工作代码,这里是:

Dim msgboxReader As New System.IO.StreamReader(filename)

  msgbox(msgboxReader.ReadLine())

Dim objReader As New System.IO.StreamReader(filename)

    Do While objReader.Peek() <> -1
        TextLine = objReader.ReadLine()
        SplitLine = Split(TextLine, ",")
        dvList.Rows.Add(SplitLine)
    Loop

更新 我只是声明另一个读者只阅读第一行

于 2013-09-19T05:27:04.007 回答
0

这段代码对我来说工作得很好(但也许,长文件会很慢)。

'' fileToOpen is the var with address of file (E.g.: c:\txt.txt)
Dim lineOneFromFile As String = IO.File.ReadAllLines(fileToOpen)(0)
于 2018-11-28T14:28:41.713 回答