2016-02-04 3 views
1

В настоящее время я делаю проект для своего курса по вычислительной технике, где я позволяю пользователю вводить названия тренировок, для каждой тренировки они могут выполнять несколько упражнений, и для каждого упражнения они могут отслеживать расстояние, время, вес, комплекты или повторы.Visual Basic Arrays and Objects

Public Class Form1 
    Dim workoutValue(14) As String 
    Dim exerciseValue(14, 9) As String 
    Dim workoutCounter As Integer 
    Dim exerciseCounter As Integer 
    Dim progressValue(14, 9, 4) As String 
    Dim reps, sets, weight, distance, time As Integer 



    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles Me.Load 
     For i = 1 To 15 
      workoutValue(i - 1) = CStr(i) 
      workoutcomboBox1.Items.Add(i) 
      workoutcomboBox2.Items.Add((workoutValue(i - 1))) 
      workoutcomboBox3.Items.Add((workoutValue(i - 1))) 
     Next 
     workoutcomboBox1.SelectedIndex = 0 
     workoutcomboBox2.SelectedIndex = 0 

     For i = 1 To 10 
      For x = 0 To 14 
       exerciseValue(x, i - 1) = CStr(i) 
      Next 
      exercisecombobox1.Items.Add(i) 
      exercisecomboBox2.Items.Add(i) 
     Next 
     exercisecombobox1.SelectedIndex = 0 
     workoutcomboBox3.SelectedIndex = 0 
     reps = 0 
     sets = 1 
     weight = 2 
     distance = 3 
     time = 4 

     For i = 0 To 14 
      For x = 0 To 9 
       For y = 0 To 4 
        progressValue(i, x, y) = "" 
       Next 
      Next 
     Next 
    End Sub 


    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles workoutdataButton.Click 
     workoutCounter = workoutcomboBox1.SelectedIndex 
     workoutValue(workoutCounter) = txtworkoutvalueInput.Text 
     workoutcomboBox2.Items.RemoveAt(workoutCounter) 
     workoutcomboBox2.Items.Insert(workoutCounter, workoutValue(workoutCounter)) 
     workoutcomboBox3.Items.RemoveAt(workoutCounter) 
     workoutcomboBox3.Items.Insert(workoutCounter, workoutValue(workoutCounter)) 

    End Sub 

    Private Sub exercisedataButton_Click(sender As Object, e As EventArgs) Handles exercisedataButton.Click 
     exerciseCounter = exercisecombobox1.SelectedIndex 
     workoutCounter = workoutcomboBox2.SelectedIndex 
     exerciseValue(workoutCounter, exerciseCounter) = txtexercisevalueInput.Text 

    End Sub 


    Private Sub workoutcomboBox3_SelectedIndexChanged(sender As Object, e As EventArgs) Handles workoutcomboBox3.SelectedIndexChanged 
     exercisecomboBox2.Items.Clear() 
     For i = 0 To 9 
      exercisecomboBox2.Items.Insert(i, exerciseValue(workoutcomboBox3.SelectedIndex, CStr(i))) 
     Next 
    End Sub 
    Private Sub progressButton_Click(sender As Object, e As EventArgs) Handles progressButton.Click 
     exerciseCounter = exercisecomboBox2.SelectedIndex 
     workoutCounter = workoutcomboBox3.SelectedIndex 
     If repscheckBox.Checked = True Then 
      progressValue(workoutCounter, exerciseCounter, reps) = repstxtBox.Text 
     End If 
     If setscheckBox.Checked = True Then 
      progressValue(workoutCounter, exerciseCounter, sets) = setstxtBox.Text 
     End If 
     If weightcheckBox.Checked = True Then 
      progressValue(workoutCounter, exerciseCounter, weight) = weighttxtBox.Text 
     End If 
     If distancecheckBox.Checked = True Then 
      progressValue(workoutCounter, exerciseCounter, distance) = distancetxtBox.Text 
     End If 
     If timecheckBox.Checked = True Then 
      progressValue(workoutCounter, exerciseCounter, time) = timetxtBox.Text 
End If 
     Label1.Text = progressValue(1, 1, 0) 
    End Sub 
End Class 

Это то, что я сделал до сих пор (извините за мое ужасное использование и понимание языка). Программа работает, но я хочу, чтобы данные, которые пользователь вводил, сохранялись при закрытии программы! Я искал использование объектов, потому что вы можете сохранить данные для объектов в серийный файл. Но я не могу найти способ использовать объекты аналогично моим массивам. Любая помощь или совет будут очень признательны!

+0

VB6 или vb.net выбрать один. они не то же самое –

+0

Исправлено, извините за это! – DJHolmes97

+0

Это не VB6, но выглядит VB.Net –

ответ

0

Вы можете использовать для каждого цикла и экспортировать каждое значение массива строки в текстовом файле ...

Что-то вроде этого:

Try 

Using sw As StreamWriter = File.AppendText("C:\MyFile.txt") 
For each value In myArray 
sw.WriteLine(value.tostring) 
Next 
    Catch ex As Exception 
MsgBox("Something went wrong:" & ex.tostring) 
     End Try 
+0

Хотя это, вероятно, то, что мне нужно будет использовать. Если я смогу работать, нужно использовать списки для этой же вещи, это, вероятно, почистит мой код совсем немного. – DJHolmes97