old_explode()
=============

FUNKTION
--------
::

	string *old_explode(string str, string del)

ARGUMENTE
---------
::

	str - Der String, der aufgespaltet werden soll.
	del - Der String, nach dem str aufgespalten werden soll.

BESCHREIBUNG
------------
::

	Durch Ausschneiden von del wird der String str in ein Array von Strings
	zerlegt. Dieses Array wird anschliessend zuruckgegeben.

RUECKGABEWERT
-------------
::

	Das Array mit den Bestandteilen der Zerlegung.

BEMERKUNGEN
-----------
::

	Das Verhalten von old_explode() entspricht dem dem explode()-Verhalten,
	das in /doc/efun/explode als "altes" Verhalten bezeichnet wird, d.h.
	Leerstrings an Anfang und Ende des zerlegten Strings werden entfernt!

BEISPIELE
---------
::

	strs = explode( "nimm alles", " "); => strs = ({ "nimm", "alles" })
	strs = explode( "abc", "abc" );     => strs = ({ })
	strs = explode( "ein test", "" );   => strs = ({ "ein test" })
	strs = explode( "a b", "a");        => strs = ({ " b" });

SIEHE AUCH
----------
::

	explode(E), new_explode(E), efun::explode(E), sscanf(E)
        implode(E), regexplode(E)

