0

我有一个由数字组成的文件 array.txt。我需要从中制作一个二维数组。我怎样才能做到这一点?

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
4

2 回答 2

0

您必须有 2 个变量用于...读取文件直到读取新行,将每个数字放入arr[column][row]并在列中加 1,当读取新行时,在行中添加 1 并在新中读取数字再次行。

于 2017-01-31T13:20:13.990 回答
0

+combo_ci 是正确的。您需要阅读文件,寻找空格来增加列和新行组合 CR-LF 来增加行。这是我为读取 Excel CSV 文件所做的修改示例。唯一的区别是我用空格替换了逗号分隔符

'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
于 2017-04-13T19:08:49.033 回答