440,130 Members | 2,100 Online Need help? Post your question and get tips & solutions from a community of 440,130 IT Pros & Developers. It's quick & easy.

# VB.NET App: Ripping apart Strings

 P: 38 Ok guys, This is a quick overview of what I'm trying to do. 2 textboxes. textbox1 has a fraction entered by the user into it in one of these 2 ways 1(space)3/4 or simply 3/4 Now what this code is supposed to do is get the length of the entry ans tear it apart storing any numbers found in the string. These are later used to turn the fraction entered into a ecimal equivelent. (Note) i know I can do this with 3 boxes by having a whole #,numerator, and denominator box I allready have. But I would like to have only 1 box for the entry. Below is what I have come up with so far (with notations) But it doesn't seem to be reading the string at all. when i run it I get "NaN" in textbox2. Any ideas would be greatly appreciated. Expand|Select|Wrap|Line Numbers     ' on button click event       Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click         ' setting my variables         ' gets the length of the entry in textbox1         Dim GetLength As Integer = TextBox1.Text.Length         ' used later as the starting place when breaking up the string         Dim Textstart As Integer         ' a paece of the string         Dim r As String         ' integer storage         Dim z As Integer         Dim a As Integer         Dim b As Integer         ' parts of the fractions         Dim WholeNumber As Integer         Dim Numerator As Integer         Dim Denominator As Integer         ' answer         Dim DecimalNumber As Double         ' used with r as a temp storage of any integer found         Dim x As Integer           ' loop to shrink the string from right to left till only an integer remains_         ' or getlength = 0         Do Until GetLength = 0 Or (IsNumeric(x)) = True             ' starts by looking at the whole string and chops 1 space off for every time r_             ' cant be converted to x             r = r.Substring(1, (GetLength))             MsgBox(r)             x = r             MsgBox(x)             'subtracts 1 from GetLength             GetLength -= 1             MsgBox(GetLength)             ' takes the string and places it as r             r.ToString()             MsgBox(r)             ' makes x = r to use in loop check             x = r             MsgBox(x)             ' makes a the final integer when the loop finishes             z = x             MsgBox(a)         Loop         ' adds 2 to the start position to acount for a space or /          Textstart = (GetLength + 2)           ' Reruns the loop with a new start point everything inside is the same as above loop         Do Until GetLength = 0 Or IsNumeric(x) = True               r = r.Substring(Textstart, GetLength)             MsgBox(r)             GetLength -= 1             MsgBox(GetLength)             r.ToString()             MsgBox(r)             x = r             MsgBox(x)             a = x             MsgBox(a)           Loop             ' again adds 2 to the start point         Textstart = (GetLength + 2)           ' runs the loop the final time         Do Until GetLength = 0 Or IsNumeric(x) = True               r = r.Substring(Textstart, GetLength)             MsgBox(r)             GetLength -= 1             MsgBox(GetLength)             r.ToString()             MsgBox(r)             x = r             MsgBox(x)             b = x             MsgBox(b)           Loop           ' Sets the whole # numerator and denominator  based on 2 numbers_         ' or only a numerator and denominator are present         If b = Nothing Or 0 Then             Numerator = (z)             MsgBox(z)             Denominator = (a)             MsgBox(a)             WholeNumber = 0             ' otherwise sets them based on 3 integers found         Else             WholeNumber = (z)             Numerator = (a)             Denominator = (b)             ' does the math         End If         DecimalNumber = ((Numerator / Denominator) + (WholeNumber))         TextBox2.Text = "" & (DecimalNumber)       End Sub     [/vb] Dec 13 '07 #1 