-1

Ok。いくつかのレコードをファイルに保存する必要がありますdata.dat. ファイル内のレコードは日付値でソートされます。レコードの各ブロックは、新しいレコード ブロックがここから始まることを示す記号とともに日付値で$始まり、レコード ブロックの終わりを示す「#」記号で終わります。

レコード ブロックのサンプルは次のようになります。

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

ファイル data.dat には、このようないくつかのブロックが含まれています。vb.net を使用して配列に格納されているファイル内の各ブロックを抽出するにはどうすればよいですか?

4

2 に答える 2

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
于 2013-09-30T12:06:05.493 に答える
0

Tuple カルテットは、このために準備ができているように見えます。

Dim Record As New List(Of Tuple(Of DateTime, String, String, Integer))

次に、各フィールドにアイテム番号でアクセスできます。

Record(0).Item1
于 2013-09-30T14:48:22.667 に答える