Split pro VB5

Funkce:
Public Function vb5Split(ByVal Sin As String, sOut() As String, _
Optional sDelim As String, Optional nLimit As Long = -1, _
Optional bCompare As VbCompareMethod = vbBinaryCompare) As _
Variant

   'Funkce, která rozdělí řetěz do pole podle specifikovaného oddělovače. 
   'Pokud není oddělovač specifikován, bere se mezera

   Dim sRead As String, nC As Integer

   If sDelim = "" Then sDelim = " "

   If InStr(Sin, sDelim) = 0 Then
      ReDim sOut(0) As String
       sOut(0) = Sin
      vb5Split = sOut
      Exit Function
   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 <> "~Bozena"

   ReDim Preserve sOut(nC)
   sOut(nC) = Sin
   vb5Split = sOut

End Function

Private 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))
   Else
      ReadUntil = "~Bozena"
   End If

End Function

Zpět

Autor: The Bozena