仅从文本文件中读取整数并分离

时间:2015-02-10 22:07:05

标签: vb.net listbox integer streamreader

我创建了一个程序,只能从包含字符串的文本文件中成功读取整数到列表框中。例如: 文本文件包含:

  • Tyler 7
  • Daniel 2
  • Mike 6
  • Rory 9

然后列表框将显示:7269。 但是我计划将这些数字从最高到最低排序(反之亦然),为了做到这一点,我想尝试将每个数字存储在列表框中的新行上,但我不知道如何实现这一点。 我用来读取整数的代码是:

    Dim intOnly As String = IO.File.ReadAllText(File_1)

    Dim intValue As String = String.Empty

    For Each c As Char In intOnly

        If IsNumeric(c) Then

            intValue += c

        End If

    Next

    ListBox3.Items.Add(intValue)
End Sub

3 个答案:

答案 0 :(得分:0)

利用ListBox.DataSource属性和数组,您可以在新行中显示每个数字。

例如:

aLstSrc = New Integer(2) {}
aLstSrc(0) = 1
aLstSrc(1) = 2
aLstSrc(2) = 3

ListBox1.DataSource = aLstSrc

您应该启动数组并填充示例中的For Each循环。

您可以将数组创建为String或Integer,但如果您需要执行数据的进一步处理,Integer应该是最佳选择。

另请参阅此内容以获取有关将文本文件处理为数组/列表的更多信息:VB.NET - Reading a text file containing tab-separated integers/doubles and storing them in arrays

答案 1 :(得分:0)

尝试这样的事情:

    Dim values As New List(Of Integer)

    Dim File_1 As String = System.IO.Path.Combine(My.Computer.FileSystem.SpecialDirectories.MyDocuments, "SomeFile.Txt")
    For Each line As String In System.IO.File.ReadLines(File_1)
        Dim m As System.Text.RegularExpressions.Match = System.Text.RegularExpressions.Regex.Match(line, "\d+")
        If m.Success Then
            values.Add(Convert.ToInt32(m.Value))
        End If
    Next

    values.Sort()
    values.Reverse()
    ListBox3.DataSource = values

答案 2 :(得分:0)

试试这个:

Private Sub test()
    Dim sr As New System.IO.StreamReader("file.txt")
    Dim LofInt As New List(Of String)

    While sr.Peek <> -1
        Dim line As String = sr.ReadLine
        Dim intValue As String = String.Empty

        For Each c As Char In line
            If IsNumeric(c) Then
                intValue += c
            End If
        Next

        LofInt.Add(intValue)
    End While

    sr.Close()

    LofInt.Sort()
    For Each i In LofInt
        ListBox1.Items.Add(i)
    Next

End Sub

基本上我们做的是: 我们逐行读取文件并存储数值。在每一行之后,我们将添加到列表中的内容添加到列表中。 之后我们使用该列表的一个功能来排序&#34; numers&#34; (仍然是一个字符串,所以我们应该说文字)并将它们添加到列表框