我创建了一个程序,只能从包含字符串的文本文件中成功读取整数到列表框中。例如: 文本文件包含:
然后列表框将显示: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
答案 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; (仍然是一个字符串,所以我们应该说文字)并将它们添加到列表框