Visual Basic, abrir um arquivo, o que está errado com o meu código?
-
20-08-2019 - |
Pergunta
O 'leitor' dentro da instrução if está mostrando "Expressão não é um método", o que estou fazendo de errado?
Graças
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
Eu simplesmente mudou o Dim e funcionou.
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
Graças
Solução
Nesta linha:
reader(OpenFileDialog2.FileName)
Você está tentando chamar um construtor em um objeto que já está construído. Isso não é possível, para que o compilador VB é interpretar isso como você está tentando chamar o objeto leitor como se fosse uma função.
Apenas não declarar o leitor até que você tenha o nome do arquivo, de modo que você pode passar o nome para o construtor quando você realmente construí-la, como assim
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
Outras dicas
Você ficou de fora o nome do método em reader(OpenFileDialog2.FileName)
.
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow