Programming Forums

Programming Forums (http://www.programmingforums.org/forumindex.php)
-   Visual Basic (http://www.programmingforums.org/forum18.html)
-   -   VB Phone Number to Name... (http://www.programmingforums.org/showthread.php?t=12759)

NDawg28 Mar 9th, 2007 9:14 PM

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.

DaWei Mar 9th, 2007 10:27 PM

Please read the forum's rules/FAQ and the "How to Post a Question" thread. Things like that should come before your first post.

Ooble Mar 10th, 2007 11:10 AM

The goggles... they do nothing!

In all seriousness, I recommend listening to DaWei, especially when it comes to the part in the rules about [code] tags.

AICkieran Mar 10th, 2007 12:24 PM

Would there be no way to create a mod/simple regx for VBul that puts code into code tags :-/

DaWei Mar 10th, 2007 1:31 PM

I would suggest that a person seeking free, contributory help could politely aid the process by reading faqs, rules, and "How to Post" threads.

AICkieran Mar 10th, 2007 5:08 PM

Aye, I get that, any question [as far as i know] I have ever come here to seek answers for has been properly formed and asked in the best way I possibly could.


It was just a suggestion that may, or may not make peoples lives easier :-)

Thanks

Kieran.

DaWei Mar 10th, 2007 7:58 PM

It isn't terribly difficult or time-consuming to type "[ code ][ /code ]"; particulary when you parcel it out among the questioners, rather than require the administrator to revise the software package. Perhaps there's some truth to the recent research that suggests a significant percentage of younger generations have an undue sense of entitlement. Not every thing in life comes "easier" or on a gilded platter. On the other hand, perhaps here's the chance to go write a code-bot to replace budding code-monkeys. What could be easier than standing in the unemployment line.

AICkieran Mar 10th, 2007 8:32 PM

While I agree with most of what you said, I personally disagree with the last part about younger generations expecting everything for nothing, I'm 17 and live in the UK, i messed up high school for personal reasons and as a result I'm working my ass off (both in a job and in college) trying to better myself and put myself in a situation where i can contribute to society rather than leech, as are many of my friends.

Have their not been lazy people in all generations? Just because there are a few lazy, leeching, idiots that aren't worth the oxygen they intake doesn't mean to say we all [or as a majority] are.

Just my two cents.

Thanks.
;)

DaWei Mar 10th, 2007 9:19 PM

I would never maintain that all young people are lazy. There are too many exceptions right here on this board. I also can't substantiate the second-hand report of the study I recently saw, which is why I used the word, 'perhaps'. I can, however, observe tendencies for myself, and draw reasonable conclusions.

AICkieran Mar 10th, 2007 9:40 PM

In that case, i fully agree with you.

About my previous post, i suggested the mod as a possible solution to people who didn't read the rules before posting (many don't, as most forum rules are generic, at best) it wasn't to help the lazy be lazier, looking back, yeah, i agree, they should read the rules and do their best to make a question understandable.

Thanks.


All times are GMT -5. The time now is 9:49 PM.

Powered by vBulletin® Version 3.7.0, Copyright ©2000 - 2008, Jelsoft Enterprises Ltd.
Copyright ©2007 DaniWeb® LLC