http://www.mircscripting.info/forum/viewtopic.php?t=601
/*
Explanation: this snippet splits text up by a character or string you specify, it then fills $s1..$s2..$sN just like /tokenize does $1..$2..$N (/help $1-)
Usage:
Exactly the same as /tokenize, but instead of supplying an ascii number, you specify a character or string.
The only extra thing is the -c switch, which can be used if you want to clear the token list for whatever reason.
Examples:
//split ! a!b | echo -a $!s1: $s1 ~ $!s2: $s2 ~ $!s1-: $s1- ~ $!s1-2: $s1-2 ~ $!s2-: $s2- ~ $!s0: $s0
//split helloworld 1helloworld2 | echo -a $!s1: $s1 ~ $!s2: $s2 ~ $!s1-: $s1- ~ $!s1-2: $s1-2 ~ $!s2-: $s2- ~ $!s0: $s0
Credits: Propogater @ DALNet #helpdesk - finding a bug where if you used /split when you'd already split up more tokens it would fail.
*/
alias split {
if ($1 == -c) { var %c = 1 }
tokenize 13 $replace($2-,$1,$cr)
var %i = 1, %g
.alias s0
while ($isalias(s $+ %i)) {
.alias s $+ %i
%g = %i + 1
while ($isalias($+(s,%i,-,%g))) {
.alias $+(s,%i,-,%g)
inc %g
}
.alias $+(s,%i,-)
inc %i
}
if (!%c) {
%i = 1
while ($eval($ $+ %i,2) != $null) {
if (%i < $0) {
%g = %i + 1
while ($eval($ $+ %g,2) != $null) {
.alias $+(s,%i,-,%g) return $eval($+($,%i,-,%g),2)
inc %g
}
}
.alias $+(s,%i) return $eval($ $+ %i,2)
.alias $+(s,%i,-) return $eval($+($,%i,-),2)
inc %i
}
.alias s0 return $calc(%i - 1)
}
}