
write_data()
************


SYNOPSIS
========

   string write_data(string file, int start, int anzahl)


BESCHREIBUNG
============

   Diese Funktion macht genau das, was write_file() tut (also siehe dort),
   allerdings stellt sie sicher, dass <file> immer mit einem /data/
   beginnt (setzt es also notfalls davor).
   Es wird also immer irgendwo unterhalb von /data/ geschrieben.

   Die Benutzung dieser sefun wird dringend empfohlen, falls Daten
   ausserhalb von Spielerobjekten gepeichert werden, damit Daten und
   Code getrennt abgelegt sind. Dies vereinfacht z.B. die
   Datensicherung.


BEISPIEL
========

   # write_file("/d/ebene/zesstra/blupp", "Testdaten.\n");
   -> schreibt in das File /data/d/ebene/zesstra/blupp.
   # write_file("/data/d/ebene/zesstra/blupp", "Testdaten.\n");
   -> tut dasselbe.


SIEHE AUCH
==========

   read_data()
   read_file(E), write_file(E), read_bytes(E), write_file(E)
