I would define custom class like this:
Public Class MyData
Private Var1? As Integer
Private Var2? As Integer
Private Var3? As Integer
Private Var4? As Integer
Private Var5? As Integer
Private Var6? As Integer
Private Var7 As String
Private Var8 As String
Private Var9? As Date
Public Sub New(ByVal PipedString As String)
Dim data As String() = PipedString.Split("|")
Var1 = data(0)
Var2 = data(1)
Var3 = data(2)
Var4 = data(3)
Var5 = data(4)
Var6 = data(5)
Var7 = data(6)
Var8 = data(7)
Var9 = Convert.ToDateTime(data(8), New System.Globalization.CultureInfo("de-DE"))
End Sub
Public Property Data1 As Integer
Get
Return Var1
End Get
Set (value As Integer)
Var1 = value
End Set
End Property
Public Overrides Function ToString() As String
Return "Date is: " & Var9.ToString()
End Function
End Class
Usage:
Dim s As String = "5009|0011730|00|0000|0000|0000|N|N|29/03/2007|N| 0|Y| 0| 0| 0.00 |06|655|A| |A| | | "
Dim md As MyData = New MyData(s)
Console.WriteLine("{0}", md.ToString())
md.Data1 = 5010
Console.WriteLine("{0}", md.Data1)