Public Class Form1 Structure Data Dim name As String Dim volume As String End Structure Dim drinkData(49) As Data Dim FILE_NAME As String = "SOFT_DRINK_DATA.TXT" Dim numLines As Integer Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load GetData() End Sub Private Sub submitNewData_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles submitNewData.Click Dim objWriter As New System.IO.StreamWriter(FILE_NAME, True) If numLines >= 49 Then MsgBox("No more than 50 entries can be inputted!") ElseIf numLines < 49 Then objWriter.WriteLine(softDrink.Text) objWriter.WriteLine(changeInVolume.Text) End If objWriter.Close() softDrink.Text = "" changeInVolume.Text = "" GetData() End Sub Sub GetData() Dim readFile As IO.StreamReader = IO.File.OpenText(FILE_NAME) numLines = 0 Do While readFile.Peek <> -1 drinkData(numLines).name = readFile.ReadLine drinkData(numLines).volume = readFile.ReadLine numLines += 1 Loop readFile.Close() SortData(numLines) ShowData() End Sub Sub ShowData() Dim fmtStr As String = "{0,-14}{1, 14:N1}" showGainers.Items.Clear() showLosers.Items.Clear() showGainers.Items.Add(String.Format(fmtStr, "Brand", "% Change in Volume")) showGainers.Items.Add("") showLosers.Items.Add(String.Format(fmtStr, "Brand", "% Change in Volume")) showLosers.Items.Add("") For i As Integer = 0 To numLines If drinkData(i).volume > 0 Then showGainers.Items.Add(String.Format(fmtStr, drinkData(i).name, drinkData(i).volume)) Else showLosers.Items.Add(String.Format(fmtStr, drinkData(i).name, drinkData(i).volume)) End If Next End Sub Sub SortData(ByVal numPasses As Integer) For passNum As Integer = 1 To (numPasses - 1) For index As Integer = 1 To numPasses - passNum If (drinkData(index - 1).volume < drinkData(index).volume) Then SwapData(index) End If Next Next End Sub Sub SwapData(ByVal index As Integer) Dim temp As Data temp = drinkData(index - 1) drinkData(index - 1) = drinkData(index) drinkData(index) = temp End Sub End Class