我在CSV文件中有两列,我需要将每列存储在一个单独的数组中。
Name,AvalibilityAsBoolean
---------------------------
Vagarth Gaurav,True
Dhananjay Menon,False
我想有一个名字的数组,另一个可用的数组作为一个类似于下面存储的布尔值。
Name(0) = "Vagarth Gaurav"
Name(1) = "Dhananjay Menon"
Available(0) = True
Available(1) = False
唯一的问题是读取CSV并将字符串和布尔值存储到正确的数组中。
请帮助,我是VB的新手。我正在使用Visual Basic 2010
答案 0 :(得分:2)
我确定之前已经问过这个问题,但这应该会有所帮助。利用TextFieldParser Class为您进行解析可以轻松实现。此代码示例中也显示了管理这两个数组的代码。
Dim arrName() As String
Dim arrValue() As String
Using ioReader As New Microsoft.VisualBasic.FileIO.TextFieldParser("C:\test\test.csv")
ioReader.TextFieldType = FileIO.FieldType.Delimited
ioReader.SetDelimiters(",")
While Not ioReader.EndOfData
Dim arrCurrentRow As String() = ioReader.ReadFields()
If arrName Is Nothing Then
ReDim Preserve arrName(0)
ReDim Preserve arrValue(0)
arrName(0) = arrCurrentRow(0)
arrValue(0) = arrCurrentRow(1)
Else
ReDim Preserve arrName(arrName.Length)
ReDim Preserve arrValue(arrValue.Length)
arrName((arrName.Length - 1)) = arrCurrentRow(0)
arrValue((arrValue.Length - 1)) = arrCurrentRow(1)
End If
End While
答案 1 :(得分:1)
Dim sData() As String
Dim arrName, arrValue as New List(Of String)()
Using sr As New StreamReader(sFile)
While Not sr.EndOfStream
sData = sr.ReadLine().Split(","c)
arrName.Add(sData(0).Trim())
arrValue.Add(sData(1).Trim())
End While
End Using
您可能希望将值存储为Boolean
(可用,notAvailable)。你可以这样做:
Dim arrValue As New List(Of Boolean)()
...
arrValue.Add(Not sData(1).Trim().ToUpper().StartsWith("NOT"))