Visual Basic, abrir un archivo, ¿qué tiene de malo mi código?
-
20-08-2019 - |
Pregunta
El 'lector' dentro de la instrucción if muestra " La expresión no es un método " ;, ¿qué estoy haciendo mal?
Gracias
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
Simplemente moví el Dim y funcionó.
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
Gracias
Solución
En esta línea:
reader(OpenFileDialog2.FileName)
Estás intentando llamar a un constructor en un objeto que ya está construido. Eso no es posible, por lo que el compilador de VB está interpretando esto mientras intenta llamar al objeto lector como si fuera una función.
Simplemente no declare al lector hasta que tenga el nombre de archivo, de modo que pueda pasar el nombre al constructor cuando realmente lo construya, así
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
Otros consejos
Te perdiste el nombre del método en reader(OpenFileDialog2.FileName)
.
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow