2010-10-31 4 views
0

Je dispose d'un fichier de texte commefichier texte Convertir en tableau 2D en vb.net

11111 
10001 
10001 
11111 

je dois lire dans un tableau 2d d'entiers je l'ai déjà le code pour lire le fichier

Dim fullpath = "Path to File" 
Dim objReader As StreamReader 
objReader = New StreamReader(fullpath) 

Mais je ne sais pas quoi faire après cela. Je sais que c'est quelque chose de simple mais je ne peux pas y penser maintenant -_-

+0

Avez-vous déjà utilisé Google? [StreamReader] (http://msdn.microsoft.com/en-us/library/system.io.streamreader.aspx) Classe (System.IO) – frayser

Répondre

2

Je suppose que le tableau 2d est de stocker chaque chiffre individuel dans chaque rangée individuelle. Supposons également que nous avons seulement 4 lignes de 5 chiffres chacune. (Ne supposez pas ceci, à moins que vous ne sachiez que c'est forceable - sinon calculez la taille nécessaire et redim le tableau)

Dim myArray(4, 5) As Integer, y As Integer = 0, x As Integer = 0 
    Dim fullpath = "Path to File" 

    Using sr As StreamReader = New StreamReader(fullpath) 
      Do While sr.Peek() >= 0 
        For Each c As Char In sr.ReadLine 
         Try 
          myArray(x, y) = Integer.Parse(c) 
         Catch ex As Exception 'i assume this is the only possible error, but we could be out of bounds due to assuming the actual size of the file/line... catch specific exceptions as necessary' 
          Console.WriteLine(String.Format("Error converting {0} to an integer.", c)) 
         End Try 
         y += 1 
        Next 
        x += 1 
        y = 0 
      Loop 
     End Using 
+0

Merci cela a fonctionné parfaitement. Je connaissais la taille du tableau à l'avance, donc pas besoin de faire le redim. – giodamelio

+0

notez que mon instruction catch ignore simplement la définition de la valeur dans ce tableau pour cette position. Vous devriez probablement faire quelque chose de plus robuste, comme quitter ou forcer la valeur de cet index à -1 pour indiquer une erreur lorsque vous la parcourez plus tard – pinkfloydx33