Go4Expert (http://www.go4expert.com/)
-   Visual Basic ( VB ) (http://www.go4expert.com/forums/visual-basic/)
-   -   Need help with VB Function (http://www.go4expert.com/forums/help-vb-function-t19184/)

 gpabyc 26Aug2009 22:09

Need help with VB Function

for some reason I cant get this to work. I need to remove all numbers from the end of a string leaving the ones at the beginning. So for example K1WIST-VED12 would = K1WIST-VED

Code:

```Function StripNumber (GetComputerName As String)   Dim Str As String     Dim i As Integer, b As Integer  GetComputerName = Trim(GetComputerName)  ComputerNameLength = Len(GetComputerName)     For i = ComputerNameLength To 1  Step -1         If IsNumeric(Mid(GetComputerName, i, 1)) Then             Str = (Left(GetComputerName, ComputerNameLength - b)             b = (b + 1)         Else StripNumber = Trim(Str)         End If   Next i   Return StripNumber = Trim(Str)  End Function```

Re: Need help with VB Function

OK. I have corrected the code for you. Here it is :

Code: VB

`Function StripNumber (GetComputerName)    Dim Str As String    Dim i As Integer, b As Integer    b = 1    GetComputerName = Trim(GetComputerName)     ComputerNameLength = Len(GetComputerName)    For i = ComputerNameLength To 1  Step -1         If IsNumeric(Mid(GetComputerName, i, 1)) Then             Str = Left(GetComputerName, ComputerNameLength - b)             b = b + 1        Else            Exit For        End If   Next   StripNumber = Trim(Str)End Function`

It should work fine.

The code is pretty self-explanatory. But I would just explain one point :
in the else condition of the If block inside the loop, you should use "Exit For" so that the control jumps out of the for loop when thefirst non-numeric character (from end) is encountered.

 gpabyc 28Aug2009 00:03

Re: Need help with VB Function

Thank you for the reply but Im getting a Microsoft VBScript compilation error: Expected end of statement for the As String and As Integer statements when i remove them that error clears but returns blank

Re: Need help with VB Function

You should have mentioned that you are using VBScript.
The code I gave would compile fine in VB6.

Anyway, here is the VBScript Code:
Code: VB

`Function StripNumber (GetComputerName)    Dim Str,i,b    b = 1    GetComputerName = Trim(GetComputerName)    ComputerNameLength = Len(GetComputerName)    For i = ComputerNameLength To 1  Step -1        If IsNumeric(Mid(GetComputerName, i, 1)) Then            Str = Left(GetComputerName, ComputerNameLength - b)            b = b + 1        Else            Exit For        End If   Next   If Str = "" And b = 1 Then      Str = GetComputerName   End If   StripNumber = Trim(Str)End Function`

To try the above func, here is a test program:
Code: VB

`Dim mStrmStr = InputBox("Enter a test value")Msgbox(StripNumber(mStr))WScript.quitFunction StripNumber (GetComputerName)    Dim Str,i,b    b = 1    GetComputerName = Trim(GetComputerName)    ComputerNameLength = Len(GetComputerName)    For i = ComputerNameLength To 1  Step -1        If IsNumeric(Mid(GetComputerName, i, 1)) Then            Str = Left(GetComputerName, ComputerNameLength - b)            b = b + 1        Else            Exit For        End If   Next   If Str = "" And b = 1 Then      Str = GetComputerName   End If   StripNumber = Trim(Str)End Function`

The previous code had a very minor bug which return "blank" only when the input text was *purely* alphabetical.
Hope this one is alright.

Tell me if it works .. :)

 All times are GMT +5.5. The time now is 19:31.