文本文件中的组合框值
希望人们可以提供帮助!文本文件中的组合框值
我正在尝试创建一个组合框,用一个文本文件中的信息填充,这个文本文件使用分隔符作为分隔符。 IE
对象A,研究生,N,也就是说,5,moretext
我需要的各个领域,作为整数/布尔/字符串..但我有越来越的代码来做到这一点问题工作正常
我搜查了网络,发现这个代码,但它不适合我。也许我是愚蠢的,但希望有人能帮助我。帮助我哦互联网大师!
Public Sub meritlist()
Dim looksups As New ArrayList
' This call is required by the Windows Form Designer.
InitializeComponent()
Dim rdr As IO.StreamReader = IO.File.OpenText(c:merits.txt")
While Not rdr.EndOfStream
Dim line As String = rdr.ReadLine()
'Split the line by a comma:
Dim arrayList = line.Split(",")
'Get the right values: break down is as: Merit Name,Type,Shared,Carthan,Max,Pre-Req
Dim meritname As Integer = arrayList(0)
Dim merittype As String = arrayList(1)
Dim meritshared As Boolean = arrayList(2)
Dim carthan As String = arrayList(3)
Dim meritmax As Integer = arrayList(4)
Dim prereq As String = arrayList(5)
cmoMRDro.Items.Add(New lookups(arrayList(0), arrayList(1)))
End While
rdr.Close()
End Sub
有4件事我会建议。
使用
TextFieldParser
类读取分隔/固定宽度的文本文件。他们更专业地从事这项工作,并且已经有适当的代码来处理它。不需要致电
InitializeComponent
。创建一个结构/类来存储您的订单项,而不是原始变量。这样你就可以更有条理地进行。
使用
List
该结构/类的,而不是ArrayList
虽然你已经做可以与一些修改予以纠正,我会做这种方式,保持我所有的建议以上给出。所以你可以看到它变得如此简单:
Structure MeritListType
Dim meritname As Integer
Dim merittype As String
Dim meritshared As Boolean
Dim carthan As String
Dim meritmax As Integer
Dim prereq As String
Public Sub New(ByVal data() As String)
meritname = Integer.Parse(data(0))
merittype = data(1)
meritshared = Boolean.Parse(data(2))
carthan = data(3)
meritmax = Integer.Parse(data(4))
prereq = data(5)
End Sub
End Structure
Public Sub MeritList()
Dim FileData As New List(Of MeritListType)
Dim tfp As New FileIO.TextFieldParser("c:\merits.txt")
tfp.TextFieldType = FileIO.FieldType.Delimited
tfp.SetDelimiters(",")
While Not tfp.EndOfData
FileData.Add(New MeritListType(tfp.ReadFields))
End While
tfp.Close()
'' you have the records in FileData
'' do whaever you want to do with it here now
End Sub
+ 1对于TextFieldParser建议。我绝对同意你的看法。 – 2012-07-12 10:11:47
试图使用这个,但它带来了一个错误filedata.add(new meritlistype(ftp.readfields))..说它没有构造函数.. – AndrewMantis 2012-07-12 13:27:43
我觉得你忘了把'公共小组新(ByVal数据( )As String)'在你的结构中。你需要把这个。而且您还需要修改该值,以便您的值正确转换为正确的数据类型。例如你可能在字段中有'F',并且直接转换为布尔值是不可能的。所以你需要适当地修改该块。 :) – 2012-07-12 13:49:50
1.)文件路径不正确。这是一个错字吗? 2.)'objecta,grad,N'不属于'整数/布尔值/字符串'。对于ex'单词,5,moretext'属于类别字符串/ Integer/string' – 2012-07-12 10:10:33
1)更改为使其适合页面,但它是正确的。 2)是的,我有点儿捣碎了一个例子来展示它的外观。功能名称,价值类型,carthan和prereq都是字符串。我意识到现在我把共享作为一个N而不是错误的选项。 – AndrewMantis 2012-07-12 11:31:20