2017-01-31 1 views
0

J'ai un fichier array.txt composé de nombres. Je dois en faire un tableau 2D. Comment puis je faire ça?Comment traduire le fichier int tableau 2-D?

0 6 10 0 0 0 0 0 0 0 
6 0 12 11 14 0 0 0 0 0 
10 12 0 12 0 0 8 16 0 0 
0 11 12 0 0 6 3 0 0 0 
0 14 0 0 0 4 0 0 6 0 
0 0 0 6 4 0 0 0 12 0 
0 0 8 3 0 0 0 0 16 6 
0 0 16 0 0 0 0 0 0 8 
0 0 0 0 6 12 16 0 0 13 
0 0 0 0 0 0 6 8 13 0 

Répondre

0

Vous devez avoir 2 variable pour ligne et colonne ... Lire le fichier jusqu'à ce que lu nouvelle ligne, mettre chaque numéro arr [colonne] [ligne] et ajouter 1 à colonne, lors de la lecture nouvelle ligne ajouter 1 à la ligne et lire le numéro dans la nouvelle ligne à nouveau.

0

+ combo_ci est correct. Vous devez lire le fichier, recherchez les espaces pour incrémenter la colonne et la nouvelle ligne combo CR-LF pour augmenter la ligne. Voici un exemple modifié que j'ai travaillé pour lire un fichier CSV Excel. La seule différence est que j'ai remplacé le séparateur virgule par un espace

'Reading a space deliminted file 
    TextWindow.Show() 

    LoadFile() 
    TextWindow.WriteLine("File Size = " + Text.GetLength(DataIn)) 
    ParseFile() 
    TextWindow.WriteLine("Rows = " + rows + ", Columns = " + cols) 
    DisplayTable() 

    '--------------------------------------------------------------- 

    'Read the contents of the CSV style (spaces instead of commas) file into memory 
    Sub LoadFile 
     filename = Program.Directory 
     filename = filename + "\excelintoSB.csv" 

     DataIn = File.ReadContents(filename) 
    EndSub 

    'Parse the file contents, looking for spaces and line breaks to separate the cells. 
    Sub ParseFile 
     row = 1 
     col = 1 
     cell = "" 

     For i =1 To Text.GetLength(DataIn) 'Look at each character in the file 
     ch = Text.GetSubText(DataIn,i,1) 
     'Is it a space or a cariage return? Store the Cell 
     If ch = " " or text.GetCharacterCode(ch) = 13 then 
      table[row][col] = cell 
      cell = "" 
      If text.GetCharacterCode(ch) = 13 Then 'end of row, start a new one 
      row = row + 1 
      col = 1 
      Else 'New Cell, current row 
      col = col + 1 
      If col > maxCol then 'Keep track of how many columns we have encountered 
       maxCol = col 
      endif 
      endif 
     ElseIf text.GetCharacterCode(ch) <> 10 then 'build the cell, ignoring line feeds. 
      cell = cell + ch 
     EndIf 
     EndFor 
     rows = row - 1 
     cols = maxCol 
    EndSub 

    'Display the table in row/column format 
    Sub DisplayTable 
     TextWindow.WriteLine("The Table --- ") 
     For i = 1 To rows 
     TextWindow.Write("[ ") 
     For j = 1 To cols 
      TextWindow.Write(table[i][j] + " ") 
     EndFor 
     TextWindow.WriteLine("]") 
     EndFor 
    EndSub