VB.net problem med array och klass
Jag är van med VB6, och där kunde man skriva så här:
array1(1) = "text"
men i vb.net funkar det inte så bra. Vad ska jag göra?
Felet blir när man försöker lägga in datan i variabeln openFileArray().
Här är koden.
Public Class anmdat
Public anm() As String
Public datum() As String
End Class
Public Class oFileArr
Public lpnr As String
Public invnr As String
Public brand As String
Public modell As String
Public serial As String
Public placering As String
Public anm As anmdat
End Class
Public oFile As String
Public openFileArray() As oFileArr
Private Sub OpenFileDialog1_FileOk(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk
'Dim openFileArray() As oFileArr
oFile = OpenFileDialog1.FileName
Dim tmplp As Int32
Dim sstreamReader As StreamReader = New StreamReader(oFile)
Dim line As String
Do
line = sstreamReader.ReadLine()
Dim LineArray() As String = Split(line, ":", 2, CompareMethod.Binary)
Dim SubLineArray() As String = Split(LineArray(UBound(LineArray)), ",", 2, CompareMethod.Binary)
tmplp = CInt(Microsoft.VisualBasic.Left(LineArray(UBound(LineArray)), 1))
Select Case tmplp
Case 1
openFileArray(tmplp).lpnr = CStr(tmplp)
Case 2
openFileArray(tmplp).invnr = SubLineArray(UBound(SubLineArray))
Case 3
openFileArray(tmplp).brand = SubLineArray(UBound(SubLineArray))
Case 4
openFileArray(tmplp).modell = SubLineArray(UBound(SubLineArray))
Case 5
openFileArray(tmplp).serial = SubLineArray(UBound(SubLineArray))
Case 6
openFileArray(tmplp).placering = SubLineArray(UBound(SubLineArray))
Case 7
Dim UnderSubLineArray() As String = Split(SubLineArray(UBound(SubLineArray)), ";", , CompareMethod.Binary)
Array.Copy(UnderSubLineArray, openFileArray(tmplp).anm.anm, UBound(UnderSubLineArray))
Case 8
Dim UnderSubLineArray() As String = Split(SubLineArray(UBound(SubLineArray)), ";", , CompareMethod.Binary)
Array.Copy(UnderSubLineArray, openFileArray(tmplp).anm.datum, UBound(UnderSubLineArray))
End Select
'MsgBox(LineArray(LBound(LineArray)))
Loop Until line Is Nothing
sstreamReader.Close()
End Sub
edit: Felkoden är denna
System.NullReferenceException was unhandled by user code
Message="Object reference not set to an instance of an object."
Source="serviceprogram"
StackTrace:
at WindowsApplication1.Form1.OpenFileDialog1_FileOk(Object sender, CancelEventArgs e) in D:\Tims\Programmering\.net\serviceprogram\serviceprogram\Form1.Designer.vb:line 408
at System.Windows.Forms.FileDialog.OnFileOk(CancelEventArgs e)
at System.Windows.Forms.FileDialog.DoFileOk(IntPtr lpOFN)
at System.Windows.Forms.FileDialog.HookProc(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
Edit2: en sak till, hur gör man en array i designmode på t.ex. en checkbox? i vb6 var det bara att kopiera och klistra in så frågade den om man vill göra array av den.
tack o bock