Sprung zum Seitenende Struktur Themen A...Z Titel << >>

CXI-Basis-Programmierreferenz / Version 2 / Datenspeicherung / CxiTree / Erweiterung des Baums /

NewSub - Neuen Knoten erstellen

[C++] CxiError CxiTree :: NewSub (CxiName pname, CxiLong psize = 0)
[C] CxiError cxiNewSub (CxiHandle self, CxiName pname, CxiLong psize)

[S1:BASIS] Erstellt eine neue leere Unterbaum-Variable im aktuellen Sichtfenster (einen CHILD-Knoten bzw. ein "Subdirectory", einen "Unterordner")

pname:
Name der Variablen

psize:
Anfängliche Größe des neuen Knotens, 0 für Standardgröße

return:
0 ok, sonst Fehler

Der Wert psize wird vom CXI-System auf ein Vielfaches der internen Blockgröße aufgerundet; er sollte angegeben werden, wenn der Platzbedarf des neuen Knotens bekannt ist, um nachträgliche Reallokationen des Knotens auf dem Speichermedium zu vermeiden.

Beim Aufruf mit psize=0 (Vorgabe) legt die Funktion einen Knoten mit Standardgröße an; meistens ist die Standardgröße gleich der Minimalgröße.

Eine Unterbaum-Variable ist eine normale Variable und kann als solche behandelt werden, z.B. geschieht das Löschen einer solchen Variablen mit DeleteVar.

Vorsicht! NewSub erstellt in jedem Fall einen NEUEN leeren CXI-Knoten mit dem angegebenen Namen. Existiert bereits eine Variable pname, so wird sie vollständig überschrieben, auch wenn es sich um eine Variable des Typs cxiTypeSub handelt.

Die neue Unterbaum-Variable wird nur angelegt, sie wird nicht zum neuen Sichtfenster. Dazu ist anschließend MoveDown(pname) aufzurufen oder direkt die kombinierte Funktion MoveDownAuto zu verwenden.

Unterbaum-Variablen werden nie über Resource-Referenzen aufgelöst.

Portabilität:
Diese Funktion ist in allen unterstützten Systemen verfügbar.

Siehe auch:
MoveDownAuto
MovePathAuto
MoveDown
MoveUp
MoveHome
MoveNext
MovePath
MovePop

Beispiel:

#include "cxib.h"

int main ()
{
  CxiTreeMem a;

  // Erstellt die unten abgebildete Struktur
  a.NewSub ("Knoten1");      // Knoten1 anlegen
  a.NewSub ("Knoten2");      // Knoten2 anlegen
  a.MoveDown ("Knoten1");    // Wechsel nach Knoten1
  a.Push ();                 // Position (Knoten1) sichern
  a.MoveDownAuto ("Knoten3");// Knoten3 anlegen und dorthin wechseln
  a.SetNum ("VariableInKnoten3", 4713);
  a.MovePop ();              // Zurück nach Knoten1
  a.NewSub ("Knoten4");      // Knoten4 anlegen
  a.MovePath ("\\Knoten2");  // Direkter Wechsel nach Knoten2
  a.NewSub ("Knoten5");      // Knoten5 anlegen
  a.MoveUp ();               // Wechseln zum Elternknoten
  // Sichtfenster ist jetzt die Wurzel

  // Löschen Unterbaum Knoten2 und Knoten5
  a.DeleteVar ("Knoten2");

  // Doch nicht löschen
  a.Undo ();

  // Löschen Unterbaum Knoten1, Knoten3 und Knoten4
  a.DeleteVar ("Knoten1");

  // Löschung endgültig machen
  a.Flush ();

  // ...

  return 0;
}


Erzeugte Struktur:

[Graphik: Beispielbaum]


[i] CXI-Basis-Programmierreferenz
Version 2.10 72 (1014-001), erstellt am 15. April 2000
Textseite 231 von 855, Thema 8404 (NewSub)
[c] Copyright (c) 1996-2000 by TeraConnect GmbH

Sprung zum Seitenanfang Struktur Themen A...Z Titel << >>