這裏是我的代碼:問題追加新的數據的文本文件,並更新變量值
Imports System.IO
Public Class HomeUtilityAudProgram
Private Structure HomeUtility
Public kwCostDec As Decimal
Public dailyHoursInt As Integer
Public KwPowerInt As Integer
Public waterGalCostDec As Decimal
Public waterGalUsedInt As Integer
Public decOperatingCost As Decimal
End Structure
Private objHomeUtility As HomeUtility
Public Property lstWords As Object
Private Sub Label1_Click(sender As Object, e As EventArgs) Handles Label1.Click
End Sub
Private Sub PictureBox2_Click(sender As Object, e As EventArgs) Handles TV.Click
'Display TV
lblMessage.Text = "TV"
End Sub
Private Sub decCostPerKw_TextChanged(sender As Object, e As EventArgs) Handles decCostPerKw.TextChanged
End Sub
Private Sub intPowerPerKw_TextChanged(sender As Object, e As EventArgs) Handles intPowerPerKw.TextChanged
End Sub
Private Sub intHoursPerDay_TextChanged(sender As Object, e As EventArgs) Handles intHoursPerDay.TextChanged
End Sub
Private Sub DecBtnlCalcCost_Click(sender As Object, e As EventArgs) Handles DecBtnCalcCost.Click
Try
'Array and variable declarations
objHomeUtility.kwCostDec = Decimal.Parse(decCostPerKw.Text, Globalization.NumberStyles.Currency)
objHomeUtility.dailyHoursInt = Integer.Parse(intHoursPerDay.Text, Globalization.NumberStyles.Number)
objHomeUtility.waterGalCostDec = Decimal.Parse(decCostPerGal.Text, Globalization.NumberStyles.Currency)
objHomeUtility.waterGalUsedInt = Integer.Parse(intNumGalUsed.Text, Globalization.NumberStyles.Number)
Dim sr As New StreamReader("applianceWatt.txt")
objHomeUtility.KwPowerInt = CInt(Val("")) '<< Add Val() to handle non-number strings
Dim KwsPowerInt(-1) As Integer '<< add -1 inside brackets to initialise the array
Dim i As Integer = 0
Do Until sr.Peek = -1
'grab one value at a time from text file
objHomeUtility.KwPowerInt = CInt(Val(sr.ReadLine())) '<< Add Val() to handle non-number strings
i += 1 '<< increment your counter
Loop
sr.Dispose() '<< close the file
If objHomeUtility.KwPowerInt <= 6000 And objHomeUtility.KwPowerInt >= 10 Then
objHomeUtility.decOperatingCost = objHomeUtility.kwCostDec * objHomeUtility.KwPowerInt * objHomeUtility.dailyHoursInt + objHomeUtility.waterGalCostDec * objHomeUtility.waterGalUsedInt
lblMessage.Text &= " using " + objHomeUtility.KwPowerInt.ToString("G") + "Kw of power " + " for " + objHomeUtility.kwCostDec.ToString("C") + " an hour for " + objHomeUtility.dailyHoursInt.ToString("G") + " hours and " + objHomeUtility.waterGalCostDec.ToString("C") + " per gallon of water for " + objHomeUtility.waterGalUsedInt.ToString("G") + " gallons is " + objHomeUtility.decOperatingCost.ToString("C")
Else
lblMessage.Text = "Invalid wattage entered."
End If
Dim Result = MsgBox("Do you want to change the default wattage value?", MsgBoxStyle.YesNo, "Append Wattage")
If Result = MsgBoxResult.Yes Then
intPowerPerKw.Visible = True
objHomeUtility.KwPowerInt = File.CreateText.StreamReader("applianceWatt.txt")
If objHomeUtility.KwPowerInt <= 6000 And objHomeUtility.KwPowerInt >= 10 Then
objHomeUtility.decOperatingCost = objHomeUtility.kwCostDec * objHomeUtility.KwPowerInt * objHomeUtility.dailyHoursInt + objHomeUtility.waterGalCostDec * objHomeUtility.waterGalUsedInt
lblMessage.Text &= " using " + objHomeUtility.KwPowerInt.ToString("G") + "Kw of power " + " for " + objHomeUtility.kwCostDec.ToString("C") + " an hour for " + objHomeUtility.dailyHoursInt.ToString("G") + " hours and " + objHomeUtility.waterGalCostDec.ToString("C") + " per gallon of water for " + objHomeUtility.waterGalUsedInt.ToString("G") + " gallons is " + objHomeUtility.decOperatingCost.ToString("C")
Else
lblMessage.Text = "Invalid wattage entered."
End If
End If
Catch ex As Exception
MessageBox.Show("Error in quantity on hand or product cost", "Data Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
Private Sub Fridge_Click(sender As Object, e As EventArgs) Handles Fridge.Click
'Display Refrigerator
lblMessage.Text = "Refrigerator"
End Sub
Private Sub Heater_Click(sender As Object, e As EventArgs) Handles Heater.Click
'Display Heater
lblMessage.Text = "Heater"
End Sub
Private Sub Fan_Click(sender As Object, e As EventArgs) Handles Fan.Click
'Display Fan
lblMessage.Text = "Fan"
End Sub
Private Sub Dryer_Click(sender As Object, e As EventArgs) Handles Dryer.Click
'Display Dryer
lblMessage.Text = "Dryer"
End Sub
Private Sub Oven_Click(sender As Object, e As EventArgs) Handles Oven.Click
'Display Oven
lblMessage.Text = "Oven"
End Sub
Private Sub btnClear_Click(sender As Object, e As EventArgs) Handles btnClear.Click
decCostPerKw.Clear()
intPowerPerKw.Clear()
intHoursPerDay.Clear()
decCostPerGal.Clear()
intNumGalUsed.Clear()
lblMessage.Text = String.Empty
End Sub
Private Sub btnClose_Click(sender As Object, e As EventArgs) Handles btnClose.Click
' Close the form.
Me.Close()
End Sub
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles Washer.Click
'Display Washer
lblMessage.Text = "Washer"
End Sub
Private Sub Label5_Click(sender As Object, e As EventArgs) Handles Label5.Click
End Sub
Private Sub Label6_Click(sender As Object, e As EventArgs) Handles Label6.Click
End Sub
Private Sub intNumGalUsed_TextChanged(sender As Object, e As EventArgs) Handles intNumGalUsed.TextChanged
End Sub
End Class
我之前的工作,但我的任務到一個數組(S)或結構添加到代碼這就是它存在的原因。我已經成功添加了一個結構並訪問了文本文件並將其加載到變量中。我目前的問題是追加變量的值並更新文本文件。
你能更準確?你說你得到一個問題,但錯誤代碼是什麼? – Mederic
BC30574和BC42104 –
它說什麼!索引超出範圍? – Mederic