API:CDataNodeStorage
Aus STNE-Wiki
fertige Scripte | Anleitungen und FAQ | Überblick über die Scripting-Sektion | API-Übersicht | Hilfen zum Arbeiten im Wiki |
CDataNodeStorage ermöglicht es, Daten dauerhaft zu speichern. Diese sind dann auch noch vorhanden, wenn das Script nicht gerade ausgeführt wird. Mögliche Daten sind Texte (Strings) und Zahlen (z.B. Integer).
Zum Einrichten einer Datenbank ist lediglich folgende Zeile nötig:
Var Speicher As New CDataNodeStorage('ScriptName_Speicher', 1);
Wenn als zweiter Parameter eine 1 gesetzt ist, wird unter Datenbank->Scripting->Daten ein neuer Eintrag mit dem Namen des ersten Parameters (hier: ScriptName_Speicher) erstellt. Dieser lässt sich auch nicht wieder löschen. Überlege dir also vorher, ob du eine Datenbank anlegen willst.
Mit der Variable Speicher kannst du nun auf die Datenbank zugreifen und Werte reinschreiben.
Beispiel:
Speicher.Items.Add('Knoten');
Damit wird in der Datenbank ein neuer Knoten mit dem Namen Knoten angelegt.
Beachte: Speicher.Items gibt ein Objekt des Typs CDataNodeList zurück! Darin sind alle Elemente der obersten Ebene der Datenbank enthalten.
Struktur
Die Struktur der Datenbank ist folgendermaßen aufgebaut:
Knoten { KindKnoten1 { KindKindKnoten='Wert1'; } KindKnoten2='Wert2'; }
Das Anlegen der oben gezeigten Struktur funktioniert so:
Speicher.Items.Add('Knoten'); Speicher.Item('Knoten').Items.Add('KindKnoten1'); Speicher.Item('Knoten').Items.Add('KindKnoten2'); Speicher.Item('Knoten').Items.Item('KindKnoten1').Items.Add('KindKindKnoten'); Speicher.Item('Knoten').Items.Item('KindKnoten1').Items.Item('KindKindKnoten').Value = 'Wert1'; Speicher.Item('Knoten').Items.Item('KindKnoten2').Value = 'Wert2';
Das mag natürlich auf den ersten Blick noch etwas verwirrend sein, deshalb jetzt Schritt für Schritt:
- In der ersten Zeile wird der obersten Ebene der Datenbank der Knoten 'Knoten' hinzugefügt.
- In der zweiten Zeile wird nun der gerade neu erstellten Ebene 'Knoten' ein Knoten hinzugefügt ('KindKnoten1') und somit eine neue Ebene erstellt.
- In der dritten Zeile passiert wieder das Gleiche, nur dass diesmal ein zweiter Knoten in die gleiche Ebene wie KindKnoten1 eingefügt wird.
- In der vierten Zeile wir eine weitere Ebene eingefügt, diesmal als Unterebene von 'KindKnoten1'.
- In der fünften Zeile wird dem 'KindKindKnoten' der Wert "Wert1" zugewiesen.
- In der letzten Zeile wird schließlich dem Knoten 'KindKnoten2' der Wert "Wert2" zugewiesen.
Jeder Knoten in der Datenbank kann einen Wert haben. Es muss aber keiner eingetragen werden. Um einen Wert auszulesen verfährt man ähnlich wie beim Eintragen eines Wertes:
Speicher.Item('Knoten').Items.Item('KindKnoten2').Value;
gibt den Wert "Wert2" zurück, welcher im Script wie gewohnt verwendet werden kann.
Für eine detailliertere Beschreibung, was man mit der Datenbank so alles machen kann, schau dir den Eintrag zur CDataNodeList an, sowie CDataNode
Methoden
Die Eigenschaften oder Methoden sind die folgenden:
Methode | Erklärung |
---|---|
Copy | Kopiert die Datenbank und erstellt eine neue mit dem angegebenem Namen |
Delete | Löscht den Inhalt der Datenbank |
Items | Gibt ein Objekt des Typs CDataNodeList zurück (wichtigster Parameter) |
LoadFromUser | Damit kann man eine Datenbank von einem anderen User laden, wenn diese freigegben wurde. ACHTUNG: Fehlermeldung wenn die Datenbank nicht existiert! |
Rename | Ändert den Namen der Datenbank |
Die vollständige Liste findest du direkt im Objektexplorer unter (http://game.stne.net/ObjectExplorer.aspx?p=CDataNodeStorage)
--SimonSlater 16:28, 20. Aug. 2010 (CEST)