如何从CSV文件中读取数据并将信息存储到数组中?

时间:2013-02-08 02:13:14

标签: arrays vb.net csv

我在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

2 个答案:

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