REM ***********************************************
REM Title: String Tokenizer
REM Author: Phaelax
REM Downloaded from: http://dbcc.zimnox.com/
REM ***********************************************
 
Global delimiter$ as string
Global string$ as string
Global token$ as string
Global stringLength as integer
Global startingPosition as integer
Global delimiterLength as integer
delimiter$= ", "
string$ = "906,Sat,28,Aug,2004,06,07,10,20,37,44,36, 1263778, 4, Pearl , 7"
token$ = ""
stringLength = len(string$)
startingPosition = 1
delimiterLength = len(delimiter$)
 
 
 
while hasMoreTokens() = 1
  print nextToken$()
endwhile
 
repeat : until spacekey()
 
 
 
 
REM Returns the next token from the string
function nextToken$()
  flag = 0
 
  if delimiter$ = ""
      startingPosition = stringLength
      token$ = string$
  endif
 
  for i = startingPosition to stringLength-1
      for x = 1 to delimiterLength
        if mid$(delimiter$,x) = mid$(string$,i)
            token$ = subString(string$, startingPosition-1, i-1)
            startingPosition = i+1
            flag = 1
            sp = startingPosition
            repeat
               hit = 0
               for x = 1 to delimiterLength
                  if mid$(delimiter$,x) = mid$(string$,sp) then hit = 1
               next x
               if hit = 1 then inc sp, 1
            until hit = 0
            startingPosition = sp
            exit
        endif
        if (i = stringLength-1)
            token$ = subString(string$, startingPosition-1, i+1)
            startingPosition = i+1
            flag = 1
        endif
      next x
 
      if flag = 1 then exit
  next i
endfunction token$
 
 
 
REM Returns true(1) if the string has more tokens left
function hasMoreTokens()
  if startingPosition <= stringLength-1 then exitfunction 1
endfunction 0
 
 
 
REM Returns a chunk of a whole string
REM starp - is the starting position of the substring that
REM        you want to be returned. The character at that
REM        position is not included in the returned result.
REM endp - is the position of the last character in the string
REM        you want to be returned.
function subString(s$ as string, startp as integer, endp as integer)
  l = len(s$)
  s$ = right$(s$,l-startp)
  s$ = left$(s$, endp-startp)
endfunction s$