2016-06-21 2 views
-1

Donc je suis proche de ce code mais pas encore libre. La partie "Of Integer" doit être remplacée par "Of Single" une fois que la boucle For a atteint un canal de type Single Data. Existe-t-il un moyen facile de le faire sans le coder explicitement "Of Single"? Si non, alors je ne pense pas que je serai capable de boucler ça comme j'essaye de le faire. J'ai essayé d'omettre le premier paramètre après le AppendData I.E. "Canaux (i) .AppendData (jaggedArray (i))" et bien que je ne reçoive pas d'erreur lors de la compilation, il jette une exception lors de l'exécution du code. Donc ça ne marche pas. Il nécessite le paramètre de type de données et bien sûr le tableau de données à ajouter.Modifier le paramètre de type dans une boucle For?

For Each c As TdmsChannel In Channels 
     Channels(i).AppendData(Of Integer)(jaggedArray(i)) 
     i += 1 
    Next 
+1

Premièrement, pourquoi ne pas le coder 'Of Single'? Aussi quel est le type de jaggedArray (i)? –

+0

jaggedArray (i) peut être de type Integer ou Single. Il peut y avoir de 4 à 13 tableaux de Single ou Integer dans JaggedArray(). JaggedArray est un tableau de tableaux. – busarider29

+0

Oh oui, j'ai oublié qu'il pourrait y avoir aussi des tableaux booléens dans le tableau Jagged. – busarider29

Répondre

0

Je l'ai compris. En fait, il y avait une méthode pour les collections de chaînes que l'on peut utiliser pour obtenir le type de données. J'ai utilisé cette méthode afin de déterminer comment ajouter les données (Of Integer, Of ​​Single, ou Of boolean types).

Dim dtype As System.Type 
    For Each c As TdmsChannel In Channels 
     dtype = Channels(i).GetDataType 
     If dtype.Name = "Int32" Then 
      Channels(i).AppendData(Of Integer)(jaggedarray(i)) 
     ElseIf dtype.Name = "Single" Then 
      Channels(i).AppendData(Of Single)(jaggedarray(i)) 
     ElseIf dtype.Name = "Boolean" Then 
      Channels(i).AppendData(Of Boolean)(jaggedarray(i)) 
     End If 
     i += 1 
    Next