25 lines
736 B
Plaintext
25 lines
736 B
Plaintext
DIM sep$(2)
|
|
sep$() = "==", "!=", "="
|
|
PRINT "String splits into:"
|
|
PRINT FNmultisplit("a!===b=!=c", sep$(), FALSE)
|
|
PRINT "For extra credit:"
|
|
PRINT FNmultisplit("a!===b=!=c", sep$(), TRUE)
|
|
END
|
|
|
|
DEF FNmultisplit(s$, d$(), info%)
|
|
LOCAL d%, i%, j%, m%, p%, o$
|
|
p% = 1
|
|
REPEAT
|
|
m% = LEN(s$)
|
|
FOR i% = 0 TO DIM(d$(),1)
|
|
d% = INSTR(s$, d$(i%), p%)
|
|
IF d% IF d% < m% m% = d% : j% = i%
|
|
NEXT
|
|
IF m% < LEN(s$) THEN
|
|
o$ += """" + MID$(s$, p%, m%-p%) + """"
|
|
IF info% o$ += " (" + d$(j%) + ") " ELSE o$ += ", "
|
|
p% = m% + LEN(d$(j%))
|
|
ENDIF
|
|
UNTIL m% = LEN(s$)
|
|
= o$ + """" + MID$(s$, p%) + """"
|