2009-06-26 4 views
0

Le 'lecteur' dans l'instruction if montre "L'expression n'est pas une méthode", que fais-je de mal?Visual Basic, Ouverture d'un fichier, quel est le problème avec mon code?

Merci

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 

J'ai simplement déplacé le Dim et cela a fonctionné.

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 

Merci

Répondre

0

Sur cette ligne:

reader(OpenFileDialog2.FileName) 

Vous essayez d'appeler un constructeur sur un objet qui est déjà construit. Ce n'est pas possible, donc le compilateur VB interprète cela quand vous essayez d'appeler l'objet lecteur comme s'il s'agissait d'une fonction.

Il suffit de ne pas déclarer le lecteur jusqu'à ce que vous avez le nom de fichier, de sorte que vous pouvez transmettre le nom au constructeur lorsque vous construisez réellement, comme tant

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

Merci pour la clarification. –

0

Vous avez manqué le nom de la méthode dans reader(OpenFileDialog2.FileName).

Questions connexes