Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /// callfunc "str_explode2" , "<array output>", "<string>"{, <Amount of Delemiter>{, "<Delemiter>"{, "<Delemiter>"}}};
- function script str_explode2 {
- if ( !getarg(2) )
- return callfunc("str_toarray", getarg(1), getarg(0) );
- sleep2 1;
- setarray .@char$[0],
- " ", "0", "1", "2", "3", "4", "5", "6", "7", "8", "9",
- "e", "i", "a", "s", "r", "n", "t", "o", "u", "l", "c",
- "p", "m", "d", "v", "h", "g", "f", "b", "y", "q", "k",
- "z", "x", "j", "w", "_", "-", "(", ")", ";", ",", ":",
- ".";
- set .@charsize, getarraysize(.@char$);
- set .@tmp$, "|~key~|";
- set .@str$, .@tmp$ + getarg(1) ;
- set .@len, getstrlen(getarg(1));
- set .@delem_len, getarg(2);
- for( set .@g,0;.@g<.@delem_len;set .@g,.@g+1 ){
- setd(".@parse_len"+.@g, getstrlen(getarg(3+.@g)));
- }
- while( .@len > .@s ) {
- set .@i, 0 ;
- while( .@i < .@charsize ) {
- if ( ! ( set(.@l,.@l+1) % 600) )
- sleep2 1;
- if ( compare( .@str$ , .@tmp$ + .@char$[.@i] ) ) {
- set .@tmp$, .@tmp$ + .@char$[.@i];
- set .@g, 0;
- while( .@g < .@delem_len ) {
- if ( ! ( set(.@l,.@l+1) % 600) )
- sleep2 1;
- if ( .@char$[.@i] == getarg((3+.@g)) ) {
- set .@p, .@p + 1;
- set .@s, .@s + (getd(".@parse_len"+.@g)-1) ;
- break;
- }
- set .@g,.@g+1;
- }
- if ( .@delem_len == .@g )
- set .@arr$[.@p], .@arr$[.@p] + .@char$[.@i];
- break;
- }
- set .@i, .@i+1 ;
- }
- if ( .@i == .@charsize ) return 0;
- else set .@s, .@s+1 ;
- }
- deletearray getd(getarg(0));
- copyarray getd(getarg(0)), .@arr$, .@p+1;
- return .@p+1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement