を更新することは私のコードです:の問題は、新しいデータでテキストファイルを追加しても、ここでは変数の値
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
私は前にそれ働いていたが、そのコードに配列(複数可)または構造を追加する使命を帯びていますなぜそれが存在するのですか?私は正常に構造体を追加し、テキストファイルにアクセスし、変数にロードしました。私の現在の問題は、変数の値を追加し、テキストファイルを更新することです。
は、あなたがより正確だろうか?あなたは問題があると言いますが、エラーコードは何ですか? – Mederic
BC30574とBC42104 –
とは何ですか!範囲外のインデックスですか? – Mederic