Namespace vbPatterns

  Public Class StringTokenizer

    Private s As String
    Private i As Integer
    Private sep As String         'separator tokenów
    '------
    Public Sub New(ByVal st As String)
      MyBase.New()
      s = st                      'przepisanie łańcucha znaków
      sep = " "                   'domyślny separator
    End Sub
    '------
    Public Sub New(ByVal st As String, ByVal sepr As String)
      MyBase.New()
      s = st
      sep = sepr
    End Sub
    '------
    Public Sub setSeparator(ByVal sp As String)
      sep = sp                    'kopiowanie separatora
    End Sub
    '------
    Public Function nextToken() As String
      Dim tok As String
      i = s.IndexOf(sep)          'poszukiwanie separatora
      If i > 0 Then               'jeśli znaleziony
        tok = s.Substring(0, i)   'zwrócenie łańcucha znajduącego się na lewo od separatora
        s = s.Substring(i + 1)    'skrócenie pozostałego łańcucha
      Else
        tok = s                   'zwrócenie pozostałej części łańcucha
        s = ""                    'pozostała część łańcucha pusta
      End If
      nextToken = tok             'zwrócenie tokena
    End Function
  End Class

end Namespace
