我有一个文件文件,其中包含存储在其上的机器记录,单个记录如下所示:
" 1234567890"" 12/04/2013""锯""利得"" 17/11 / 2012",#TRUE#,#FALSE#,#FALSE#,"操作时发出奇怪的噪音"
我想要实现的是仅使用每个记录的第一项(序列号)填充组合框,以便能够基于所选序列号以表单形式搜索机器。我需要它来读取文件,从每个记录中挑选序列号,用它们填充组合框,然后让你选择你想要的那个。
提前感谢您的帮助。
答案 0 :(得分:1)
如果您使用CSV格式的文本文件,则可以将信息存储在数据表中并将每个数据行存储在cb中,并使用组合框的DisplayMember属性仅显示第一列。您还需要第一行包含要实现此目的的列名称。
试试这个假设第一列叫做Serial:
For Each r as DataRow in table.Rows
combobox1.Items.Add(r)
Next
combobox1.DisplayMember("Serial")
如果没有,您仍然可以使用您的streamreader获取每一行并将其拆分以获取第一个字段。 尝试:
Do
Dim line As String = reader.readLine()
If line Is Nothing Then Exit Do
Dim fields as String() = Split(line, ",")
combobox1.Items.Add(fields(0))
Loop
希望它有所帮助。您可能必须使用SubString方法来停用引号。我把它分开:
替换
combobox1.Items.Add(fields(0))
通过
combobox1.Items.Add(fields(0).SubString(1,fields(0).length -1))
答案 1 :(得分:1)
如果它是一个简单的应用程序,并且您乐意使用上述阅读器,您还可以执行以下操作。我使用了Replace()而不是Substring()。
Dim reader As StreamReader = New StreamReader(Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.Desktop), "yourFile.txt"))
Dim input = "", fields() As String
While (Not reader.EndOfStream)
input = reader.ReadLine()
fields = input.Split(",")
Dim itemToAdd = fields(0).Replace("""", "")
ComboBox.Items.Add(itemToAdd)
End While