Article ID: 126939
Article Last Modified on 10/30/2003
' Enter the following Function statement as one, single line:
Function ParseString (SubStrs() As String, ByVal SrcStr As String,
Byval Delimiter As String) As Integer
' Dimension variables:
ReDim SubStrs(0) As String
Dim CurPos As Long
Dim NextPos As Long
Dim DelLen As Integer
Dim nCount As Integer
Dim TStr As String
' Add delimiters to start and end of string to make loop simpler:
SrcStr = Delimiter & SrcStr & Delimiter
' Calculate the delimiter length only once:
DelLen = Len(Delimiter)
' Initialize the count and position:
nCount = 0
CurPos = 1
NextPos = InStr(CurPos + DelLen, SrcStr, Delimiter)
' Loop searching for delimiters:
Do Until NextPos = 0
' Extract a sub-string:
TStr = Mid$(SrcStr, CurPos + DelLen, NextPos - CurPos - DelLen)
' Increment the sub string counter:
nCount = nCount + 1
' Add room for the new sub-string in the array:
ReDim Preserve SubStrs(nCount) As String
' Put the sub-string in the array:
SubStrs(nCount) = TStr
' Position to the last found delimiter:
CurPos = NextPos
' Find the next delimiter:
NextPos = InStr(CurPos + DelLen, SrcStr, Delimiter)
Loop
' Return the number of sub-strings found:
ParseString = nCount
End Function
Sub Command1_Click ()
Dim DataString As String
Redim SubStr(0) As String
Dim SubStrCount As Integer
Dim i As Integer
' Create a comma-delimited string:
DataString = "One,Two,Three,Four"
Print "Delimited String: " & DataString
' Parse the string into sub-strings:
SubStrCount = ParseString(SubStr(), DataString, ",")
' Display the sub-strings:
For i = 1 to SubStrCount
Print "Sub-String " & i & ": " & SubStr(i)
Next
End Sub
Additional query words: 2.00 3.00
Keywords: KB126939