В.Б. Чтение текстового файла в 2D массив?

Я пытаюсь создать игру судоку с функциями загрузки и сохранения игры в VB, и мне было интересно, как можно было бы загрузить файл сохранения (числа на доске судоку и счет времени) и сделать так, чтобы числа в файле соответствовали их точное местоположение на новой доске. Для сохранения файла у меня есть это:

Private Sub saveBoard(fileName As String)
    Dim f As StreamWriter = New StreamWriter(fileName)
    For col = 0 To 8
        Dim sudokuLine = ""
        For row = 0 To 8
            If (board(row, col).Text = "") Then
                sudokuLine += "0"
            Else : sudokuLine += board(row, col).Text
            End If
            sudokuLine += " "
        Next
        f.WriteLine(sudokuLine)
    Next
    f.WriteLine(lblMinutes.Text + " " + lblSeconds.Text)
    f.Close()
End Sub

Также я знаю о StreamReader...

1 ответ

Решение

Это может быть loadBoard, которая соответствует вашей saveBoard.
Конечно, здесь требуется немного тестирования и более надежный подход для обработки критических ошибок (например, другой файл, передаваемый в качестве входных данных) .

Обратите внимание, что я добавил оператор using вокруг открытия Stream. Это должно быть сделано также на панели выше, чтобы избежать проблем с заблокированными файлами в случае исключений.

Private Sub loadBoard(fileName As String)
    Using f = New StreamReader(fileName)
        For col = 0 To 8
            Dim sudokuColumn = f.ReadLine()
            Dim cells() = sudokuColum.Split()
            For row = 0 To 8
                If cells(row, col) = "0") Then
                    boards(row, col).Text = ""
                Else 
                    board(row, col).Text = cells(row,col)
                End If
            Next
        Next
        lblMinutes.Text = f.ReadLine()
    End Using

End Sub
Другие вопросы по тегам