View Single Post
Old Mar 9th, 2007, 9:14 PM   #1
NDawg28
Newbie
 
Join Date: Mar 2007
Posts: 1
Rep Power: 0 NDawg28 is on a distinguished road
VB Phone Number to Name...

I'm doing a problem out of a book I'm self-teaching with, and this particular problem calls for converting a 7 digit phone number into the different combinations of words that can be made from 3 characters corresponding to each of the numbers from 2-9. The code I have so far for this is:
Public Class Form1

Private Sub btnGenerate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnGenerate.Click

Dim phoneNumber As String = txtNumber.Text

Dim charNumber2() As Char = {"A", "B", "C"}
Dim charNumber3() As Char = {"D", "E", "F"}
Dim charNumber4() As Char = {"G", "H", "I"}
Dim charNumber5() As Char = {"J", "K", "L"}
Dim charNumber6() As Char = {"M", "N", "O"}
Dim charNumber7() As Char = {"P", "R", "S"}
Dim charNumber8() As Char = {"T", "U", "V"}
Dim charNumber9() As Char = {"W", "X", "Y"}

Dim numberArray(7) As Char

For i As Integer = 0 To 6
numberArray(i) = phoneNumber.Substring(i)
Next

Dim letters1(3) As Char
Dim letters2(3) As Char
Dim letters3(3) As Char
Dim letters4(3) As Char
Dim letters5(3) As Char
Dim letters6(3) As Char
Dim letters7(3) As Char

Select Case numberArray(1)
Case Is = "2"
For k As Integer = 0 To 2
letters1(k) = charNumber2(k)
Next
Case Is = "3"
For k As Integer = 0 To 2
letters1(k) = charNumber3(k)
Next

Case Is = "4"
For k As Integer = 0 To 2
letters1(k) = charNumber4(k)
Next

Case Is = "5"
For k As Integer = 0 To 2
letters1(k) = charNumber5(k)
Next

Case Is = "6"
For k As Integer = 0 To 2
letters1(k) = charNumber6(k)
Next

Case Is = "7"
For k As Integer = 0 To 2
letters1(k) = charNumber7(k)
Next
Case Is = "8"
For k As Integer = 0 To 2
letters1(k) = charNumber8(k)
Next

Case Is = "9"
For k As Integer = 0 To 2
letters1(k) = charNumber9(k)
Next
End Select
Select Case numberArray(2)
Case Is = "2"
For k As Integer = 0 To 2
letters2(k) = charNumber2(k)
Next
Case Is = "3"
For k As Integer = 0 To 2
letters2(k) = charNumber3(k)
Next

Case Is = "4"
For k As Integer = 0 To 2
letters2(k) = charNumber4(k)
Next

Case Is = "5"
For k As Integer = 0 To 2
letters2(k) = charNumber5(k)
Next

Case Is = "6"
For k As Integer = 0 To 2
letters2(k) = charNumber6(k)
Next

Case Is = "7"
For k As Integer = 0 To 2
letters2(k) = charNumber7(k)
Next
Case Is = "8"
For k As Integer = 0 To 2
letters2(k) = charNumber8(k)
Next

Case Is = "9"
For k As Integer = 0 To 2
letters2(k) = charNumber9(k)
Next
End Select
Select Case numberArray(3)
Case Is = "2"
For k As Integer = 0 To 2
letters3(k) = charNumber2(k)
Next
Case Is = "3"
For k As Integer = 0 To 2
letters3(k) = charNumber3(k)
Next

Case Is = "4"
For k As Integer = 0 To 2
letters3(k) = charNumber4(k)
Next

Case Is = "5"
For k As Integer = 0 To 2
letters3(k) = charNumber5(k)
Next

Case Is = "6"
For k As Integer = 0 To 2
letters3(k) = charNumber6(k)
Next

Case Is = "7"
For k As Integer = 0 To 2
letters3(k) = charNumber7(k)
Next
Case Is = "8"
For k As Integer = 0 To 2
letters3(k) = charNumber8(k)
Next

Case Is = "9"
For k As Integer = 0 To 2
letters3(k) = charNumber9(k)
Next
End Select
Select Case numberArray(4)
Case Is = "2"
For k As Integer = 0 To 2
letters4(k) = charNumber2(k)
Next
Case Is = "3"
For k As Integer = 0 To 2
letters4(k) = charNumber3(k)
Next

Case Is = "4"
For k As Integer = 0 To 2
letters4(k) = charNumber4(k)
Next

Case Is = "5"
For k As Integer = 0 To 2
letters4(k) = charNumber5(k)
Next

Case Is = "6"
For k As Integer = 0 To 2
letters4(k) = charNumber6(k)
Next

Case Is = "7"
For k As Integer = 0 To 2
letters4(k) = charNumber7(k)
Next
Case Is = "8"
For k As Integer = 0 To 2
letters4(k) = charNumber8(k)
Next

Case Is = "9"
For k As Integer = 0 To 2
letters4(k) = charNumber9(k)
Next
End Select
Select Case numberArray(5)
Case Is = "2"
For k As Integer = 0 To 2
letters5(k) = charNumber2(k)
Next
Case Is = "3"
For k As Integer = 0 To 2
letters5(k) = charNumber3(k)
Next

Case Is = "4"
For k As Integer = 0 To 2
letters5(k) = charNumber4(k)
Next

Case Is = "5"
For k As Integer = 0 To 2
letters5(k) = charNumber5(k)
Next

Case Is = "6"
For k As Integer = 0 To 2
letters5(k) = charNumber6(k)
Next

Case Is = "7"
For k As Integer = 0 To 2
letters5(k) = charNumber7(k)
Next
Case Is = "8"
For k As Integer = 0 To 2
letters5(k) = charNumber8(k)
Next

Case Is = "9"
For k As Integer = 0 To 2
letters5(k) = charNumber9(k)
Next
End Select
Select Case numberArray(6)
Case Is = "2"
For k As Integer = 0 To 2
letters6(k) = charNumber2(k)
Next
Case Is = "3"
For k As Integer = 0 To 2
letters6(k) = charNumber3(k)
Next

Case Is = "4"
For k As Integer = 0 To 2
letters6(k) = charNumber4(k)
Next

Case Is = "5"
For k As Integer = 0 To 2
letters6(k) = charNumber5(k)
Next

Case Is = "6"
For k As Integer = 0 To 2
letters6(k) = charNumber6(k)
Next

Case Is = "7"
For k As Integer = 0 To 2
letters6(k) = charNumber7(k)
Next
Case Is = "8"
For k As Integer = 0 To 2
letters6(k) = charNumber8(k)
Next

Case Is = "9"
For k As Integer = 0 To 2
letters6(k) = charNumber9(k)
Next
End Select
Select Case numberArray(7)
Case Is = "2"
For k As Integer = 0 To 2
letters7(k) = charNumber2(k)
Next
Case Is = "3"
For k As Integer = 0 To 2
letters7(k) = charNumber3(k)
Next

Case Is = "4"
For k As Integer = 0 To 2
letters7(k) = charNumber4(k)
Next

Case Is = "5"
For k As Integer = 0 To 2
letters7(k) = charNumber5(k)
Next

Case Is = "6"
For k As Integer = 0 To 2
letters7(k) = charNumber6(k)
Next

Case Is = "7"
For k As Integer = 0 To 2
letters7(k) = charNumber7(k)
Next
Case Is = "8"
For k As Integer = 0 To 2
letters7(k) = charNumber8(k)
Next

Case Is = "9"
For k As Integer = 0 To 2
letters7(k) = charNumber9(k)
Next
End Select

For a As Integer = 0 To 2
For b As Integer = 0 To 2
For c As Integer = 0 To 2
For d As Integer = 0 To 2
For z As Integer = 0 To 2
For f As Integer = 0 To 2
For g As Integer = 0 To 2
txtNames.Text += letters1(a) + letters2(b) + letters3(c) + letters4(d) + letters5(z) + letters6(f) + letters7(g)
txtNames.Text &= vbTab
Next
Next
Next
Next
Next
Next
Next
End Sub
End Class

I know that the case structures could have been condensed into one, but I was trying to minimize the memory usage and processing time. My problem is this: Instead of outputing - abcdefg...abcdefh...abcdefi - it will output - abcdefg...abcdefg...abcdefg -, repeating the same combination three times before moving on to the next combination. Anyone know why?
P.S.-- I know this code may be terribly written, so any suggestions for improving the code for better memory usage, etc. would be appreciated.
NDawg28 is offline   Reply With Quote