Login | Register   
RSS Feed
Download our iPhone app
Browse DevX
Sign up for e-mail newsletters from DevX

By submitting your information, you agree that devx.com may send you DevX offers via email, phone and text message, as well as email offers about other products and services that DevX believes may be of interest to you. DevX will process your information in accordance with the Quinstreet Privacy Policy.

Tip of the Day
Language: Visual Basic
Expertise: Beginner
Aug 6, 1997



Application Security Testing: An Integral Part of DevOps

Parsing a Variable Number of Arguments

Optional parameters are a great new feature in VB4, but the ParamArray keyword is an overlooked addition to function and subroutine declarations. The ParamArray keyword allows an unspecified number of Variant parameters to be passed to a routine as an array. This subroutine uses the ParamArray keyword to parse a string into a variable number of arguments, handling text and numerics as it goes:

Public Sub SplitIt(ByVal S As String, _
        ByVal Delim As String, ParamArray _
        Out() As Variant)

        'Dim xIndex As Integer, xPos As 
        'Integer, xNext As String

        'For xIndex = LBound(Out) To 
                xPos = InStr(S, Delim)
                If xPos = 0 Then
                        xNext = S
                        S = ""
                        xNext = Left$(S, xPos - 1)
                        S = Right$(S, Len(S) - xPos _
                                + 1 - Len(Delim))
                End If
                Select Case VarType(Out(xIndex))
                        Case vbInteger To vbCurrency
                                Out(xIndex) = Val(xNext)
                        Case vbString
                                Out(xIndex) = xNext
                End Select

End Sub

Now you can use SplitIt to split any text string into any variables at each delimiter. For example:

Dim X As String, Y As Double, Z As Integer

SplitIt "A,5.5,6", ",",X,Y,Z


X="A", Y=5.5, Z=6,


SplitIt "AxxxBxxxC", "xxx", , X



Andy Brundell
Comment and Contribute






(Maximum characters: 1200). You have 1200 characters left.



We have made updates to our Privacy Policy to reflect the implementation of the General Data Protection Regulation.
Thanks for your registration, follow us on our social networks to keep up-to-date