使用文本文件中的特定项填充组合框

时间:2014-12-09 13:52:19

标签: vb.net combobox

我有一个文件文件,其中包含存储在其上的机器记录,单个记录如下所示:

" 1234567890"" 12/04/2013""锯""利得"" 17/11 / 2012",#TRUE#,#FALSE#,#FALSE#,"操作时发出奇怪的噪音"

我想要实现的是仅使用每个记录的第一项(序列号)填充组合框,以便能够基于所选序列号以表单形式搜索机器。我需要它来读取文件,从每个记录中挑选序列号,用它们填充组合框,然后让你选择你想要的那个。

提前感谢您的帮助。

2 个答案:

答案 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