Visual Basic, Apertura di un file, cosa c'è di sbagliato nel mio codice?
-
20-08-2019 - |
Domanda
Il 'lettore' all'interno dell'istruzione if mostra " L'espressione non è un metodo " ;, cosa sto facendo di sbagliato?
Grazie
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
Ho semplicemente spostato il Dim e ha funzionato.
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
Grazie
Soluzione
Su questa linea:
reader(OpenFileDialog2.FileName)
Stai provando a chiamare un costruttore su un oggetto che è già stato costruito. Questo non è possibile, quindi il compilatore VB lo sta interpretando mentre provi a chiamare l'oggetto reader come se fosse una funzione.
Basta non dichiarare il lettore fino a quando non si dispone del nome file, in modo da poter passare il nome al costruttore quando lo si costruisce effettivamente, in questo modo
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
Altri suggerimenti
Hai perso il nome del metodo in reader(OpenFileDialog2.FileName)
.
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow