user2857087
user2857087

Reputation: 1

Saving an array to file

I been trying to save an array to file but I can only create the text file but no text shows up in actual file. The loop doesn't work the way I want to. I need to store the Cust array into text file.

Dim car(4) As Decimal
Dim Cust(4) As String

'Declare module-level constants.
Const PER_DAY_Integer As Integer = 15
Const PER_MILE_Decimal As Decimal = 0.12D



Private Sub CalcButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CalcButton.Click
    'Calculate the rental charges


    Cust(0) = NameTextBox.Text
    Cust(1) = AddressTextBox.Text
    Cust(2) = CityTextBox.Text
    Cust(3) = ZipTextBox.Text
    Cust(4) = StateTextBox.Text

    Try

        car(0) = Decimal.Parse(BeginTextBox.Text)

        Try
            car(1) = Decimal.Parse(EndTextBox.Text)
            Try

                car(2) = Integer.Parse(DaysTextBox.Text)


                'Calculate the number of miles driven and the charges
                car(3) = car(1) - car(0)
                car(4) = (car(3) * PER_MILE_Decimal + car(2) * PER_DAY_Integer)

                'Display the results
                TotalTextBox.Text = car(4).ToString("C")
                MilesTextBox.Text = car(3).ToString("N1")




            Catch ex As Exception

                MessageBox.Show("Input Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
                DaysTextBox.Focus()

            End Try
        Catch ex As Exception

            MessageBox.Show("Input Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
            EndTextBox.Focus()

        End Try

    Catch ex As Exception

        MessageBox.Show("Input Error", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error)
        BeginTextBox.Focus()

    End Try


End Sub

Private Sub ClearButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ClearButton.Click
    'Clear the form

    AddressTextBox.Clear()
    CityTextBox.Clear()
    StateTextBox.Clear()
    ZipTextBox.Clear()
    BeginTextBox.Clear()
    EndTextBox.Clear()
    DaysTextBox.Clear()
    TotalTextBox.Clear()
    MilesTextBox.Clear()
    With NameTextBox
        .Clear()
        .Focus()
    End With
End Sub

Private Sub ExitButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ExitButton.Click
    'End the program

    Me.Close()
End Sub

Private Sub PrintButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PrintButton.Click
    'Print the form

    PrintForm1.PrintAction = Printing.PrintAction.PrintToPreview
    PrintForm1.Print()
End Sub




Private Sub readBtn_Click(sender As Object, e As EventArgs) Handles readBtn.Click

End Sub

Private Sub WriteBtn_Click(sender As Object, e As EventArgs) Handles WriteBtn.Click

    Dim outFile As IO.StreamWriter
    Dim int As Integer = 0
    Dim count As Integer = 0

    outFile = IO.File.CreateText("Cust.txt")


    Do While int < count
        outFile.WriteLine(Cust(1)(int))
        int += 1
    Loop

    outFile.Close()

End Sub

End Class

Upvotes: 0

Views: 164

Answers (1)

jmcilhinney
jmcilhinney

Reputation: 54417

You were asked where it failed when you debug and you obviously haven't even bothered to debug or you'd have seen the issue. Look at this from your code:

Dim int As Integer = 0
Dim count As Integer = 0

outFile = IO.File.CreateText("Cust.txt")


Do While int < count
    outFile.WriteLine(Cust(1)(int))
    int += 1
Loop

Is int ever going to be less than count?

You can replace the entire contents of that last event handler with one line:

IO.File.WriteAllLines("Cust.txt", Cust)

Of course, you should not be using file names alone but rather a file path, but that's another issue.

Upvotes: 2

Related Questions