如何从CSV文件读取数据并将信息存储到数组中?
问题描述:
我有一个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
答
我确定这个问题已被问过,但这应该有所帮助。利用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
+0
谢谢版本很多@NoAlias。它完美的作品! – Gaurav
答
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
(可用,不可用的)。你可以这样做:
Dim arrValue As New List(Of Boolean)()
...
arrValue.Add(Not sData(1).Trim().ToUpper().StartsWith("NOT"))
[解析分隔CSV在.NET]的
+0
非常感谢你! – Gaurav
可能重复(http://*.com/questions/736629/parse-delimited-csv-in-net) – CloudyMarble