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

Foi útil?

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
scroll top