REM
REM Contributed by James C. Fuller - April 2009.
REM
REM' ParseCount
REM'
REM' INCLUDE tally.bac
REM' INCLUDE replace.bac
FUNCTION ParseCount(STRING Main$, STRING Delim$)
LOCAL i,j,k,mlen,dlen,dcount TYPE int
LOCAL S1$ TYPE STRING
LOCAL dl$ TYPE STRING
mlen = LEN(Main$)
dlen = LEN(Delim$)
IF mlen EQ 0 THEN
RETURN 0
ENDIF
IF dlen EQ 0 THEN
RETURN 0
ENDIF
IF dlen >= mlen THEN
RETURN 0
ENDIF
i = 0
j = 1
k = 0
S1$=""
dl$ = Delim$
IF dlen > 1 THEN
dl$ = CHR$(255)
S1$ = CONCAT$(Main$,dl$)
IF EQUAL(UCASE$(LEFT$(Delim$,3)),"ANY") THEN
FOR i = 4 TO dlen
S1$ = Replace(S1$,MID$(Delim$,i,1),dl$)
NEXT
ELSE
S1$ = Replace(S1$,Delim$,dl$)
ENDIF
ELSE
S1$ = CONCAT$(Main$,Delim$)
ENDIF
dcount = Tally(S1$,dl$)
RETURN dcount
END FUNCTION