2009-06-26 9 views
0

Der "Leser" in der if-Anweisung zeigt "Ausdruck ist keine Methode", was mache ich falsch?Visual Basic, Öffnen einer Datei, was ist falsch mit meinem Code?

Dank

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 

Ich zog einfach die Dim und es funktionierte.

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 

Dank

Antwort

0

Auf dieser Linie:

reader(OpenFileDialog2.FileName) 

Sie versuchen, einen Konstruktor für ein Objekt aufrufen, die bereits aufgebaut ist. Das ist nicht möglich, also interpretiert der VB-Compiler dies, während Sie versuchen, das Reader-Objekt aufzurufen, als wäre es eine Funktion.

einfach nicht erklären, den Leser, bis Sie die Dateinamen haben, so dass Sie den Namen an den Konstruktor übergeben kann, wenn Sie es tatsächlich konstruieren, wie so

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 
+0

Danke für die Aufklärung. –

0

Sie verfehlten den Methodennamen in reader(OpenFileDialog2.FileName) aus.