none
循环语句问题 RRS feed

  • 问题

  •   Dim a As String = TextBox1.Text
      Dim i As Integer

            For i = 1 To Len(a)
                a = Microsoft.VisualBasic.Left(a, i)
              
                 MsgBox(a(i))
            Next

    出现Index was outside the bounds of the array错误,该如何修改?
    2011年2月27日 8:17

答案

  • 你好

    或者你可以參考以下URL
    VB.Net Get Number from String —VB.Net從String 找出數字

    http://blog.sharechiwai.com/2010/11/vb-net-get-number-from-string/

    或使用 這個 LIBRARY 的 StringFunc.Get_NumberFromString() 方法
    http://sharechiwailib.codeplex.com/

    E.g.
    label2.text = StringFunc.Get_NumberFromString(textbox1.text) 

    如果看到到這網頁可以嘗試用以下的CODE

    Public Function Get_NumberFromString(ByVal SourceString As String) As String

    'Regular Expression for Number

            Dim RegExpress As New Regex("(\d*[.]\d*|\d+)")

    'Return the first match group

            Return RegExpress.Match(SourceString).Groups(0).Value

        End Function

    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 ckjason 2011年2月27日 15:58
    2011年2月27日 11:06
    版主

全部回复

  • 你好

    你想把 TEXT1.TEXT 的字一個一個 在MESSAGE BOX 彈出來嗎?

    或者你可以更改下到以下的CODE

     

    For i = 1 To Len(a)
              '  a = Microsoft.VisualBasic.Left(a, i)  '這裡出現錯誤是因為這一句 覆寫了 VARIABLE A 的內容
    ' 第一次 A 會變成 "H"
    'MsgBox(a(i)) "A 只有一個字母 所以 A(1) 是沒有東西的 A 只有 A(0)"
              
    MsgBox(Microsoft.VisualBasic.Left(a, i))
            Next

    以下的code 都應該 可以做到這效果
    Dim a As String = TextBox1.Text
      Dim i As Integer
    Dim temp as String = ""
            For i = 1 To Len(a)
                temp = Microsoft.VisualBasic.Left(a, i)
              
                 MsgBox(temp)
            Next

    Please correct me if my concept is wrong

     


    Chi
    • 已标记为答案 ckjason 2011年2月27日 9:33
    • 取消答案标记 ckjason 2011年2月27日 9:37
    2011年2月27日 8:36
    版主

  • 你好

    你想把 TEXT1.TEXT 的字一個一個 在MESSAGE BOX 彈出來嗎?

    或者你可以更改下到以下的CODE

     

    For i = 1 To Len(a)
              '  a = Microsoft.VisualBasic.Left(a, i)  '這裡出現錯誤是因為這一句 覆寫了 VARIABLE A 的內容
    ' 第一次 A 會變成 "H"
    'MsgBox(a(i)) "A 只有一個字母 所以 A(1) 是沒有東西的 A 只有 A(0)"
              
    MsgBox(Microsoft.VisualBasic.Left(a, i))
            Next

    以下的code 都應該 可以做到這效果
    Dim a As String = TextBox1.Text
      Dim i As Integer
    Dim temp as String = ""
            For i = 1 To Len(a)
                temp = Microsoft.VisualBasic.Left(a, i)
              
                 MsgBox(temp)
            Next

    Please correct me if my concept is wrong

     


    Chi
    版主的答案对了,我还想问一些问题。根据你的答案如果textbox1有字母存在。该如何只显示textbox1的数字在label2?
    2011年2月27日 9:42
  • 你好

    或者你可以參考以下URL
    VB.Net Get Number from String —VB.Net從String 找出數字

    http://blog.sharechiwai.com/2010/11/vb-net-get-number-from-string/

    或使用 這個 LIBRARY 的 StringFunc.Get_NumberFromString() 方法
    http://sharechiwailib.codeplex.com/

    E.g.
    label2.text = StringFunc.Get_NumberFromString(textbox1.text) 

    如果看到到這網頁可以嘗試用以下的CODE

    Public Function Get_NumberFromString(ByVal SourceString As String) As String

    'Regular Expression for Number

            Dim RegExpress As New Regex("(\d*[.]\d*|\d+)")

    'Return the first match group

            Return RegExpress.Match(SourceString).Groups(0).Value

        End Function

    Please correct me if my concept is wrong


    Chi
    • 已标记为答案 ckjason 2011年2月27日 15:58
    2011年2月27日 11:06
    版主