'
'  StringTokenizer.lss
'
'  Copyright: Daniel Eriksson
'
'  Time-stamp: <2003-03-09 13:08:49 Daniel Eriksson>
'
'  Date        Author           Changes
'  ----------  ---------------  ------------------------------------
'  2002-10-08  Daniel Eriksson  Created
'
Public Class StringTokenizer
' Splits a string into tokens.
'
' Example:
'    Dim s As String
'    s = "Apple,Orange,Pear,Banana"
'  
'    Dim tokenizer As New StringTokenizer(s, ",")
'  
'    While tokenizer.HasNext() 
'      Print tokenizer.NextToken()
'    Wend
'
  Private m_string As String
  Private m_delimiter As String
  
  Public Sub New(s As String, delimiter As String)
    m_string = s
    m_delimiter = delimiter
  End Sub
  
  Public Function HasNext() As Variant
    HasNext = (m_string <> "")
  End Function
  
  Public Function NextToken() As String
    Dim pos As Integer
    pos = Instr(m_string, m_delimiter)
    
    If (pos <> 0) Then
      NextToken = Left(m_string, pos - 1)
      m_string = Mid(m_string, pos + Len(m_delimiter))
    Else
      NextToken = m_string
      m_string = ""
    End If 
  End Function
End Class