Visual Basic, открываю файл, что не так с моим кодом?
-
20-08-2019 - |
Вопрос
«Читатель» в операторе if показывает: «Выражение не является методом», что я делаю неправильно?
Спасибо
Dim reader As New CSVReader
OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
OpenFileDialog2.RestoreDirectory = True
If OpenFileDialog2.ShowDialog() = DialogResult.OK Then
reader(OpenFileDialog2.FileName)
reader.DisplayResults(DataGridView1)
'Return OpenFileDialog2.FileName
Else
End If
Я просто переместил Dim, и это сработало.
OpenFileDialog2.InitialDirectory = "a:"
OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
OpenFileDialog2.RestoreDirectory = True
If OpenFileDialog2.ShowDialog() = DialogResult.OK Then
Dim reader As New CSVReader(OpenFileDialog2.FileName)
reader.DisplayResults(DataGridView1)
'Return OpenFileDialog2.FileName
Else
End If
Спасибо
Решение
В этой строке:
reader(OpenFileDialog2.FileName)
Вы пытаетесь вызвать конструктор уже созданного объекта.Это невозможно, поэтому компилятор VB интерпретирует это как попытку вызвать объект чтения, как если бы это была функция.
Просто не объявляйте средство чтения, пока у вас не будет имени файла, чтобы вы могли передать имя конструктору при его создании, например
OpenFileDialog2.Filter = "CSV File (*.csv)|*.csv"
OpenFileDialog2.RestoreDirectory = True
If OpenFileDialog2.ShowDialog() = DialogResult.OK Then
Dim reader As New CSVReader(OpenFileDialog2.FileName)
reader.DisplayResults(DataGridView1)
'Return OpenFileDialog2.FileName
Else
End If
Другие советы
Вы пропустили имя метода в reader(OpenFileDialog2.FileName)
.
Не связан с StackOverflow