确定。我需要将一些记录存储在文件data.dat
中。
文件中的记录按日期值排序。每个记录块以其日期值和$
符号开始,表示新的记录块在此处开始,并以“#”符号结束以指示记录块的结束。
记录块的样本是:
$22/08/2013
(data)
(data)
(data)
#
文件data.dat包含这样的几个块,如何使用vb.net提取存储在数组中的每个块中的每个块?
答案 0 :(得分:0)
我将使用List(Of T)
而不是数组。您可以创建自定义类:
Class Record
Public Property DateValue As DateTime
Public Property Data As New List(Of String)
End Class
这是从文件初始化列表的可能循环:
Dim allData As New List(Of Record)
Dim currentRecord As Record = Nothing
Dim currentData As List(Of String) = Nothing
For Each line In File.ReadLines("data.dat")
If line.StartsWith("$") Then
Dim dt As DateTime
If Date.TryParse(line.Substring(1), dt) Then
currentRecord = New Record()
currentRecord.DateValue = dt
currentData = New List(Of String)
currentRecord.Data = currentData
End If
ElseIf currentRecord IsNot Nothing Then
If line.EndsWith("#") Then
allData.Add(currentRecord)
Else
currentData.Add(line)
End If
End If
Next
答案 1 :(得分:0)
在我看来,Tuple四重奏将为此做好准备。
Dim Record As New List(Of Tuple(Of DateTime, String, String, Integer))
然后可以通过它的项目编号访问每个字段:
Record(0).Item1