Multi Split

i want make function SplitDelimiter

Syntax : SplitDelimter(strText,strDelimiter) reture with array

example a = SplitDelimter("hello you:can you?me"," :?")
reture array like this

a(0) = "hello"
a(1) = "you"
a(2) = "can"
a(3) = "you"
a(4) = "me"

how can i do this function can anyone give me the source code.

please dont use For i = 1 to Len(strText) ... Next i
because it make function slow.

thanks you.
LVL 1
InVisalAsked:
Who is Participating?
 
Mike TomlinsonConnect With a Mentor Middle School Assistant TeacherCommented:
The only way to accomplish this (without looping as requested) is to replace all the delimiters you are interested in with something else so you can use the Split() function:

Option Explicit

Private Sub Command1_Click()
    Dim i As Integer
    Dim a As Variant
   
    a = SplitDelimiter("hello you:can you?me", " :?")
    For i = LBound(a) To UBound(a)
        Debug.Print "a(" & i & ") = " & a(i)
    Next i
End Sub

Private Function SplitDelimiter(ByVal source As String, ByVal delimiters As String) As Variant
    Dim i As Integer
    Dim delimiter As String
   
    delimiter = Chr(1) & "/|\"" & Chr(1)" ' pick something unlikely to appear in the source string
    For i = 1 To Len(delimiters)
        source = Replace(source, Mid(delimiters, i, 1), delimiter)
    Next i
    SplitDelimiter = Split(source, delimiter)
End Function
0
 
AzraSoundCommented:
If you are using VB6 it has this built in already.  Its called the Split function.
0
 
AzraSoundCommented:
If using VB5 or previous, use this:
http://www.devx.com/vb2themax/Tip/19090
0
 
AzraSoundCommented:
Oh, I see what you want...you want to use any one of those characters as a delimeter.  Sorry.
0
Question has a verified solution.

Are you are experiencing a similar issue? Get a personalized answer when you ask a related question.

Have a better answer? Share it in a comment.

All Courses

From novice to tech pro — start learning today.