0
にオブジェクトを追加カンマ区切りのテキストファイルから値を読み、私は現在、次のコードを持っている:は、追加クラスのオブジェクトを作成し、その後、コレクション
Public Class CPUForm
Dim myCPUList As New List(Of CPUClass)
Dim Counter As Integer = 0
Private Sub CPUForm_Load(sender As Object, e As EventArgs) Handles MyBase.Load
OpenFileDialog.ShowDialog()
Try
If IO.File.Exists(OpenFileDialog.FileName) = False Then
End If
Catch ex As IO.FileNotFoundException
MessageBox.Show("The File Could Not Be Found", "Alert")
End Try
If IO.File.Exists(OpenFileDialog.FileName) = True Then
Dim sr As IO.StreamReader = IO.File.OpenText(OpenFileDialog.FileName)
Dim line As Object
Dim data() As Object
Do Until sr.EndOfStream
line = sr.ReadLine
data = line.Split(",")
Dim ACpu As New CPUClass(data(0), data(1), data(2), data(3), data(4), data(5))
myCPUList(Counter) = ACpu
Counter += 1
Loop
sr.Close()
End If
lstOut.DataSource = Nothing
lstOut.DataSource = myCPUList
End Sub
End Class
ここでの目標は、読み取りにするからの値コンマ区切りのテキストファイルを作成し、クラスのオブジェクトを作成し、それらのオブジェクトをコレクションに追加し、オーバーライドされたToStringメソッドを使用してリストボックスにコレクションを表示します。
現在のところ、実行時にエラーは発生しません。問題は、ファイルが1つ選択されていることです。何も起こりません。コレクションに何も追加されていないかのように、リストボックスに何も表示されません。また、読み込まれている値を受け取るためのオーバーロードされたコンストラクタが存在します。
これは、「CSVHelper」のようなCSV解析ツールを使用することで簡単です。あなたのクラスに 'ToString()'オーバーライドを追加してください。 – Plutonix
'myCPUList(Counter)= ACpu'あなたのリストが空でインデックス位置を参照しようとしているので、この行は例外をスローします。代わりに 'myCPUList.Add(ACpu)'を使用してください。 – LarsTech
私は行を変更しようとしましたが、残念なことに同じ結果を得ています。 – Elite