I am writing code for visual basic that needs when member name is clicked that their phone number is also shown in the textbox. I am not getting that I am getting their index number in the text file. Some one please explain why my code is messed up while I have been learning from Schneider’s textbook. Thank-you as I want to get better at programming.
Imports System.IO
Public Class frmMembership
Structure Members
Dim sr As IO.StreamReader ‘sets variables throughout the program
Dim sw As IO.StreamWriter
Dim Name As String
Dim Numbers As String
Dim fromFile As String
Dim toFile As String
End Structure
Dim sr As IO.StreamReader ‘sets variables throughout the program
Dim sw As IO.StreamWriter
Dim identification(15) As Members
Dim fromFile As String
Dim toFile As String
Private Sub frmMembers_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
‘Assume that all numbers are from MEMBERPHONES.TEXT
Dim sr As IO.StreamReader = IO.File.OpenText(“MEMBERPHONES.TXT”)
For i As Integer = 0 To 15
identification(i).Name = sr.ReadLine
identification(i).Numbers = sr.ReadLine
Next
sr.Close()
SortNumbers()
ShowNumbers()
End Sub
Sub ShowNumbers()
‘Display a nice orderly list
Dim fmtStr As String = “{0, -13}”
lstMembers.Items.Clear()
For i As Integer = 8 To 15
lstMembers.Items.Add(String.Format(fmtStr, identification(i).Name))
Next
End Sub
Sub SortNumbers()
‘Bubble sort table in ascending order by alphabetical order
For passAlphabetically As Integer = 0 To 15
For index As Integer = 1 To 15 – passAlphabetically
If (identification(index – 1).Name > identification(index).Name) Then
SwapData(index)
End If
Next
Next
End Sub
Sub SwapData(ByVal index As Integer)
‘Swap(entries)
Dim temp As Members
temp = identification(index – 1)
identification(index – 1) = identification(index)
identification(index) = temp
End Sub
Dim item As String
Private Sub AddToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles AddToolStripMenuItem.Click
item = txtPhone.Text
item = txtName.Text
lstMembers.Items.Add(item)
End Sub
Private Sub lstMembers_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lstMembers.SelectedIndexChanged
Dim fmtStr As String = “{0, 3}”
For i As Integer = 8 To 15
Next
For i As Integer = 0 To 15
txtName.Text = CStr(lstMembers.SelectedItem)
txtPhone.Text = CInt(lstMembers.SelectedIndex)
Next
End Sub
Private Sub DeleteToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DeleteToolStripMenuItem.Click
lstMembers.Items.RemoveAt(lstMembers.SelectedIndex)
txtName.Clear() ‘This deletes what is in the textbox after it is called
End Sub
Private Sub SaveChangesAndExitToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles SaveChangesAndExitToolStripMenuItem.Click
Application.Exit()
End Sub
Private Sub ModifyToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ModifyToolStripMenuItem.Click
Dim Line As String
fromFile = (“MEMBERPHONES.TXT”)
toFile = (“thisFile.TXT”)
sr = IO.File.OpenText(fromFile)
sw = IO.File.CreateText(toFile)
Do While (sr.Peek() <> -1)
line = sr.ReadLine()
If (txtName.Text <> “”) Then ‘gave me the most trouble but after reading more I realized that this was to loop until a stock was found.
toFile = line
sw.WriteLine(toFile)
Else
toFile = txtPhone.Text
sw.WriteLine(toFile)
End If
Loop
sr.Close()
sw.Close()
IO.File.Delete(“MEMBERPHONES.TXT”)
IO.File.Move(“thisFile.TXT”, “MEMBERPHONES.TXT”)
IO.File.Delete(“thisFile.TXT”) ‘deletes the file after it was used
txtName.Clear()
txtPhone.Clear() ‘clears textboxes
End Sub
End Class