2017-09-21 6 views
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つ選択されていることです。何も起こりません。コレクションに何も追加されていないかのように、リストボックスに何も表示されません。また、読み込まれている値を受け取るためのオーバーロードされたコンストラクタが存在します。

+0

これは、「CSVHelper」のようなCSV解析ツールを使用することで簡単です。あなたのクラスに 'ToString()'オーバーライドを追加してください。 – Plutonix

+0

'myCPUList(Counter)= ACpu'あなたのリストが空でインデックス位置を参照しようとしているので、この行は例外をスローします。代わりに 'myCPUList.Add(ACpu)'を使用してください。 – LarsTech

+0

私は行を変更しようとしましたが、残念なことに同じ結果を得ています。 – Elite

答えて

0

コードは問題ありませんが、問題はテキストファイルのカンマではありませんでした。

関連する問題