【问题标题】:How to populate TextBoxes using StreamReader and arrays?如何使用 StreamReader 和数组填充文本框?
【发布时间】:2017-06-07 00:52:59
【问题描述】:

我正在尝试创建一个解决方案,该解决方案将从文本文件中提取员工信息,将其加载到数组中,然后在单击按钮时从数组中填充一系列 TextBox。

我在从数组中提取数据并将其放入文本框方面取得了一些进展。但是,填充文本框的只是单个字母,而不是完整的数据。

我已经附上了我一直在努力实现目标的代码,但我真的不知道下一步该去哪里。

文本文件中的数据供参考:

珍妮丝
琼斯
101
5.25
克里斯
奥康奈尔
102
5.35
凯伦
菲斯克
103
6.00
汤姆
温恩
104
5.75

Private Sub nextButton_Click(sender As Object, e As EventArgs) Handles nextButton.Click
    Dim EmpoyeeStreamReader As New StreamReader("employee.txt")
    Dim EmployeeLineInfoString As String
    Dim EmployeeIndex As Decimal

    EmployeeLineInfoString = EmpoyeeStreamReader.ReadLine()

    Dim EmployeeArray = (EmployeeLineInfoString).ToString

    EmployeeIndex = 0

    Try
        For EmployeeIndex = 0 To 16
            firstNameTextBox.Text = EmployeeArray(EmployeeIndex)
            EmployeeIndex += 1
            lastNameTextBox.Text = EmployeeArray(EmployeeIndex)
            EmployeeIndex += 1
            employeeNumberTextBox.Text = EmployeeArray(EmployeeIndex)
            EmployeeIndex += 1
            payRateTextBox.Text = EmployeeArray(EmployeeIndex)
        Next

        For EmployeeIndex = 5 To 16
            firstNameTextBox.Text = EmployeeArray(EmployeeIndex)
            EmployeeIndex += 1
            lastNameTextBox.Text = EmployeeArray(EmployeeIndex)
            EmployeeIndex += 1
            employeeNumberTextBox.Text = EmployeeArray(EmployeeIndex)
            EmployeeIndex += 1
            payRateTextBox.Text = EmployeeArray(EmployeeIndex)
        Next
    Catch ex As Exception
        MessageBox.Show("All Employee's have been entered")
    End Try

【问题讨论】:

  • 如果您将一行读入EmployeeLineInfoString,无论您如何称呼它,它仍然只是EmployeeArray 中的一行。但由于字符串是一个字符数组,EmployeeArray(n) 只是一个字母。
  • 那么我将如何获得整行,而不仅仅是一封信?
  • 您已经在EmployeeLineInfoString 中有整行。最好的办法是将所有行读入一个数组,然后在他们单击下一步时循环 that
  • 我不是用 Dim EmployeeArray = (EmployeeLineInfoString).ToString 做的吗?
  • 这并不像你认为的那样。设置断点并在执行后将鼠标悬停在EmployeeArray 上 - 它不是数组。 读取所有行我的意思是一次将文件的所有行读入一个数组。巧妙地命名为 FileReadAllLines 就是这样做的

标签: arrays vb.net textbox streamreader


【解决方案1】:

尝试这样的事情(尽管在表单级别声明您的 StreamReader 可能会更好!):

Private Sub nextButton_Click(sender As Object, e As EventArgs) Handles nextButton.Click
    Static EmpoyeeStreamReader As StreamReader = Nothing

    If IsNothing(EmpoyeeStreamReader) Then
        EmpoyeeStreamReader = New StreamReader("employee.txt")
    End If

    If Not EmpoyeeStreamReader.EndOfStream Then
        Try
            firstNameTextBox.Text = EmpoyeeStreamReader.ReadLine
            lastNameTextBox.Text = EmpoyeeStreamReader.ReadLine
            employeeNumberTextBox.Text = EmpoyeeStreamReader.ReadLine
            payRateTextBox.Text = EmpoyeeStreamReader.ReadLine
        Catch ex As Exception
            MessageBox.Show("Error Reading Record: Insufficient Number of Lines!")
        End Try
    Else
        MessageBox.Show("No more records!")
        EmpoyeeStreamReader.Close()
        EmpoyeeStreamReader = Nothing
    End If
End Sub

【讨论】:

    猜你喜欢
    • 2010-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多