Hi Folks,
Split function is not available natively in VB5. MSDN has provided a replacement for VB5.
Here is the code.
VB Code:
Public Function Split(ByVal sIn As String, Optional sDelim As _ String, Optional nLimit As Long = -1, Optional bCompare As _ VbCompareMethod = vbBinaryCompare) As Variant Dim sRead As String, sOut() As String, nC As Integer If sDelim = "" Then Split = sIn End If sRead = ReadUntil(sIn, sDelim, bCompare) Do ReDim Preserve sOut(nC) sOut(nC) = sRead nC = nC + 1 If nLimit <> -1 And nC >= nLimit Then Exit Do sRead = ReadUntil(sIn, sDelim) Loop While sRead <> "" ReDim Preserve sOut(nC) sOut(nC) = sIn Split = sOut End Function Public Function ReadUntil(ByRef sIn As String, _ sDelim As String, Optional bCompare As VbCompareMethod _ = vbBinaryCompare) As String Dim nPos As String nPos = InStr(1, sIn, sDelim, bCompare) If nPos > 0 Then ReadUntil = Left(sIn, nPos - 1) sIn = Mid(sIn, nPos + Len(sDelim)) End If End Function
This code doesn't work as smoothly as the split function in vb6.
Notice this array "Open ~ Close ~~ Send". This is not getting correctly split in this function.S
So I have made a slight change to the function.
Here is my changed function. Please review and comments.
VB Code:
Public Function Split(ByVal sIn As String, Optional sDelim As _ String, Optional nLimit As Long = -1, Optional bCompare As _ VbCompareMethod = vbBinaryCompare) As Variant Dim sRead As String, sOut() As String, nC As Integer If sDelim = "" Then Split = sIn End If sRead = ReadUntil(sIn, sDelim, bCompare) Do ReDim Preserve sOut(nC) sOut(nC) = sRead nC = nC + 1 If nLimit <> -1 And nC >= nLimit Then Exit Do sRead = ReadUntil(sIn, sDelim) Loop While Len(sIn) <> 0 ''My Change Over here ReDim Preserve sOut(nC) sOut(nC) = sIn Split = sOut End Function
Cheers,
Abhijit




Reply With Quote