提取文本文件的一部分以供在vb.net中使用

时间:2013-09-30 11:47:04

标签: arrays vb.net substring

确定。我需要将一些记录存储在文件data.dat中。 文件中的记录按日期值排序。每个记录块以其日期值和$符号开始,表示新的记录块在此处开始,并以“#”符号结束以指示记录块的结束。

记录块的样本是:

$22/08/2013
(data)
(data)
(data)
#

文件data.dat包含这样的几个块,如何使用vb.net提取存储在数组中的每个块中的每个块?

2 个答案:

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