| | |
Wrapping text in code
Please support our VB.NET advertiser: Programming Forums - DaniWeb Sister Site
Thread Solved |
•
•
Join Date: Sep 2006
Posts: 181
Reputation:
Solved Threads: 6
Ok, so I'm kinda new to programming, but I'm quick to grasp it. I like programming.
Anyway, I'm trying to write a program that will do this.
If a user types in a name in the first line of a textbox and clicks a button, the name will be wrapped in 2 bb-codes. If the user types in 2 names, 1 name on each line, both names are wrapped in the same bb-code...and so on...I'm using textboxes for ease of copying and pasting full lists of names and making each line in the textbox count.
So far, I got this code.
All is well...Except one thing. This code above is written to accept 3 names and wrap them in code. It works just as I wanted it. EXCEPT, if I write in only ONE name, an error popups up and says IndexOutOfRangeException was unhandled: Index was outside the bounds of the array.
If I write 2 names in the textbox, I get the same error. If I write 3 names in the textbox, the code works fine, the names are wrapped in the code as I want them. If I write in 4 names, the first 3 names are wrapped in code and the last one disappears. But that is how the code should work because I have not written anything for a 4th name and line yet, and just proves that anything that is 3 or higher is taken down to 3 and wrapped. Anything 2 and lower generates an error. Except if I have nothing written in the box, nothing happens. Again, how it's supposed to work.
So my question is, how do I get this to work. Since I'm new, I'm probably using or doing the code the wrong way. I want to be able to type in 1 name and have it wrapped in the codes, or write in 10 names, 1 on each line and have them wrapped in the code.
Any suggestions on the type of code I should use? And should I use IF THEN statements or CASE statements? Or maybe DO WHILE/UNTIL LOOP?
I saw some people used sr.Readline (line) or something like that...is that better to use than the one I'm using?
Thanks
Anyway, I'm trying to write a program that will do this.
If a user types in a name in the first line of a textbox and clicks a button, the name will be wrapped in 2 bb-codes. If the user types in 2 names, 1 name on each line, both names are wrapped in the same bb-code...and so on...I'm using textboxes for ease of copying and pasting full lists of names and making each line in the textbox count.
So far, I got this code.
vb.net Syntax (Toggle Plain Text)
'declared some strings here Dim bbp1 As String Dim bbp2 As String Dim bbox As String Dim MyArr() Dim s 'assigned the string a value bbp1 = "[player]" bbp2 = "[/player]" bbox = txtDis.Text s = vbCrLf 'MyArr is what is splitting each line is my textbox MyArr = Split(txtDis.Text, s) 'if then statement. If line 1 is not empty, display the text wrapped in the 2 codes If MyArr(0) = "" = False Then txtDis.Text = bbp1 & MyArr(0) & bbp2 'if line 1 and line 2 is not empty, display both lines wrapped in the 2 codes If MyArr(0) = "" = False And MyArr(1) = "" = False Then txtDis.Text = bbp1 & MyArr(0) & bbp2 & s & bbp1 & MyArr(1) & bbp2 'if line 1, 2, and 3 is not empty, display all 3 lines wrapped in the 2 codes If MyArr(0) = "" = False And MyArr(1) = "" = False And MyArr(2) = "" = False Then txtDis.Text = bbp1 & MyArr(0) & bbp2 & s & bbp1 & MyArr(1) & bbp2 & s & bbp1 & MyArr(2) & bbp2 End If End If End If
All is well...Except one thing. This code above is written to accept 3 names and wrap them in code. It works just as I wanted it. EXCEPT, if I write in only ONE name, an error popups up and says IndexOutOfRangeException was unhandled: Index was outside the bounds of the array.
If I write 2 names in the textbox, I get the same error. If I write 3 names in the textbox, the code works fine, the names are wrapped in the code as I want them. If I write in 4 names, the first 3 names are wrapped in code and the last one disappears. But that is how the code should work because I have not written anything for a 4th name and line yet, and just proves that anything that is 3 or higher is taken down to 3 and wrapped. Anything 2 and lower generates an error. Except if I have nothing written in the box, nothing happens. Again, how it's supposed to work.
So my question is, how do I get this to work. Since I'm new, I'm probably using or doing the code the wrong way. I want to be able to type in 1 name and have it wrapped in the codes, or write in 10 names, 1 on each line and have them wrapped in the code.
Any suggestions on the type of code I should use? And should I use IF THEN statements or CASE statements? Or maybe DO WHILE/UNTIL LOOP?
I saw some people used sr.Readline (line) or something like that...is that better to use than the one I'm using?
Thanks
Use,
vb.net Syntax (Toggle Plain Text)
Dim S As String = TextBox1.Text S = S.Trim() Dim ar() As String = S.Split(New Char() {vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries) S = "[B]" & Join(ar, "[/B][B]") & "[/B]" TextBox2.Text = S
•
•
Join Date: Sep 2006
Posts: 181
Reputation:
Solved Threads: 6
•
•
•
•
Use,
vb.net Syntax (Toggle Plain Text)
Dim S As String = TextBox1.Text S = S.Trim() Dim ar() As String = S.Split(New Char() {vbCr, vbLf}, StringSplitOptions.RemoveEmptyEntries) S = "[B]" & Join(ar, "[/B][B]") & "[/B]" TextBox2.Text = S
that works...thanks a lot...I have a lot to learn
Last edited by PcPro12; Sep 7th, 2009 at 3:25 am.
![]() |
Other Threads in the VB.NET Forum
- Previous Thread: update data code help
- Next Thread: sql sumbit command
Views: 412 | Replies: 2
| Thread Tools | Search this Thread |
Tag cloud for vb.netcode, wrapingcode







