【问题标题】:VB read line by line, compare a value and extract portion to displayVB逐行读取,比较一个值并提取部分显示
【发布时间】:2016-04-24 21:14:05
【问题描述】:

我在驱动器 C: 上有一个文本文件,我需要打开并读取第一行并执行要显示的代码,然后读取第二行并执行相同操作,等等,直到它读取文本中的所有行文件。 不知道该怎么做...

我的代码

我想我想明白了,下面,但是我如何做到这一点对于文本文件的每一行,意思是每行应用相同的评估?

    'type of message triggers
    Dim type1 As String = "d1err./"
    Dim type2 As String = "d1jam./"
    Dim type3 As String = "d1spe./"
    Dim type4 As String = "d2err./"
    Dim type5 As String = "d2jam./"
    Dim type6 As String = "d2spe./"

    Dim fileReader As StreamReader = My.Computer.FileSystem.OpenTextFileReader("C:\A\data\display.txt")
    Dim stringReader As String = fileReader.ReadLine()

    While stringReader <> Nothing
        Dim LineStart As String = stringReader.Substring(0, 7)
        Dim RestOfLine As String = stringReader.Substring(7)

        If LineStart = type1 Then
            Display1.Dis1RTB1.Clear()
            Display1.Dis1RTB1.Text = RestOfLine
        ElseIf LineStart = type2 Then
            Display1.Dis1RTB2.Clear()
            Display1.Dis1RTB2.Text = RestOfLine
        ElseIf LineStart = type3 Then
            Display1.Dis1RTB3.Clear()
            Display1.Dis1RTB3.Text = RestOfLine
        ElseIf LineStart = type4 Then
            Display2.Dis2RTB1.Clear()
            Display2.Dis2RTB1.Text = RestOfLine
        ElseIf LineStart = type5 Then
            Display2.Dis2RTB2.Clear()
            Display2.Dis2RTB2.Text = RestOfLine
        ElseIf LineStart = type6 Then
            Display2.Dis2RTB3.Clear()
            Display2.Dis2RTB3.Text = RestOfLine
        End If
        stringReader = fileReader.ReadLine()
    End While
    fileReader.Close()

End Sub

【问题讨论】:

  • 它不能解决问题,但是如果您使用Select...Case Statement,您可能会发现您的编码更容易。要读取文件,您将需要一个 循环,例如使用 While...End While Statement,它可能以 While Not stringReader.EndOfStream 开头。
  • 如果有多个“type1”的“LineStart”,则文本框中的文本(我假设是)将被覆盖,依此类推。如果这不是预期的行为,您可以使用.AppendText Method

标签: vb.net streamreader


【解决方案1】:

也许这会对你有所帮助

Public Class Form1
Dim fileReader As New IO.StreamReader("C:\Users\User\Desktop\New Text Document.txt")
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If Not fileReader.EndOfStream Then
        TextBox1.Text += fileReader.ReadLine & vbNewLine
    End If

    'Or you could do it like this

    While Not fileReader.EndOfStream
        Dim tmpStr As String = fileReader.ReadLine
        Select Case tmpStr
            Case "Dis1err"
                'Do Work here
        End Select
    End While
End Sub

结束类

【讨论】:

  • 我编辑了我正在使用的代码,但现在,我不确定如何将它应用到 txt 文件中的每一行...
  • 你知道线路顺序吗?
  • 1> d1err./ ZZZZZ 上的错误,2> d1jam./ 3> d1spe./ 系统其余部分正常 4> d2err./ 5> d2jam./ 区域 YYYY 6> d2spe./系统维护要求
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多