GML
// explode( separator, string, variable )
var _code, _count, _position, _string;
_code = '';
_count = 0;
while( true )
{
_position = string_pos( argument[0], argument[1] );
if( _position == 0 )
{
_position = string_length( argument[1] );
if( _position == 0 )
break;
_string = argument[1];
}
else
_string = string_copy( argument[1], 1, _position - 1 );
_code += argument[2] + '[' + string( _count ) + ']="' + string_replace_all( _string, '"', '"+chr(34)+"' ) + '";';
argument[1] = string_delete( argument[1], 1, _position );
_count += 1;
}
if( _count > 0 )
execute_string( _code );
return _count;
O.
EDIT
Kolejna alternatywa:
GML
// explode( separator, string, variable )
var _count;
_count = string_count( argument[0], argument[1] ) + 1;
if( argument[0] != '"' )
argument[1] = string_replace_all( argument[1], '"', '"+chr(34)+"' );
argument[1] = string_replace_all( argument[1], argument[0], '";i+=1;' + argument[2] + '="' );
execute_string( 'var i;i=0;' + argument[2] + '="' + argument[1] + '";' );
return _count;