00100 rem ********************************************************************** 00110 rem *** tokens.bas - Tokenize character string 00120 rem *** 2016 David Meyer +JMJ 00130 rem ********************************************************************** 00140 dim t1$(20) 00150 print "Enter token string"; 00160 input t0$ 00170 gosub 230 00180 print "Token count:", t1 00190 for i = 1 to t1 00200 print i; ":", t1$(i) 00210 next i 00220 stop 00230 rem ********************************************************************** 00240 rem * Tokenize subroutine 00250 rem * IN: 00260 rem * t0$ - Token string 00270 rem * OUT: 00280 rem * t1 - Token count 00290 rem * t1$() - Token array 00300 rem * LOCAL: 00310 rem * d - Token detected flag 00319 rem * For each character in t0$ ... 00320 rem ********************************************************************** 00329 rem * If current character not space ... 00330 t1 = 0 00339 rem * If token not currently detected (beginning or between tokens) ... 00340 d = 0 00349 rem * Set token detected flag 00350 for i = 1 to len(t0$) 00359 rem * Increment token count 00360 if mid$(t0$,i,1) = " " then goto 460 00369 rem * Initialize new token with current character 00370 if d then goto 420 00380 d = 1 00390 rem ELSE (token currently detected) 00399 rem * Append current character to current token 00400 t1$(t1) = mid$(t0$,i,1) 00410 goto 440 00420 rem ELSE (current character is space) 00430 rem ELSE (current character is space) 00440 rem END IF 00450 goto 480 00460 rem ELSE 00469 rem * Unset token detected flag 00470 d = 0 00480 rem END IF 00490 next i 00500 return 00510 end