Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

DIeser Datentyp entsteht z.B. beim Einlesen eines JSON Objektes oder beim Lesen eines Datenbankobjektes. Dieser Datentyp ist so aufgebaut, dass jedes Element einen Namen hat. Jedes Element kann einen anderen Typ haben.

Der Zugriff auf einzelne Elemente wird mit dem Operator . (Punkt) gemacht: Sind mehrere Elemente mit dem selben Namen vorhanden (was vor allem beim Verarbeiten von XML Daten passieren kann), dann kann mit dem Operator [ ] auf aufeinander folgende Elemente zugegriffen werden.

Ist ein Elementname nicht ein normalerweise gültiger Bezeichner (enthält z.B. Sonderzeichen oder eine Zahl am Anfang), dann kann mit dem Operator { } darauf zugegriffen werden. Dieser Operator kann auch für Teile eines Namens und mehrfach eingesetzt werden.

 

Lo_Object = {"Text1":"T1","TextA":"TA1","TextA":"TA2", "123$Text2":"T2", "Obj" : {"ObjectMember1" : 123, "ObjectMember2":234} };
Ls_Text = Lo_Object.Text1; // ergibt "T1"
Ls_Text = Lo_Object.TextA; // ergibt "TA1"
Ls_Text = Lo_Object.TextA[0]; // ergibt ebenfalls "TA1"
Ls_Text = Lo_Object.TextA[1]; // ergibt "TA2"
Ls_Text = Lo_Object.{123}{"$"}Text{2}; // ergibt "T2"
Ls_Text = Lo_Object.{"123$"}Text2; // ergibt ebenfalls "T2"
Ls_Text = Lo_Object.{100 + 23}{"$" + "Text2"}; // ergibt ebenfalls "T2"
Li_i = 1;
Li_Value = Lo_Object.Obj.ObjectMember{Li_i}; // ergibt 123
Li_Value = Lo_Object.Obj.ObjectMember{Li_i+1}; // ergibt 234
 

 

Wenn ein .object Objekt mit Opus befüllt werden soll, dann kann dies mit dem Operator .< gemacht werden für die Zuweisung muss dann der Operator := verwendet werden.

In folgendem Beispiel wird ein solches Objekt erzeugt:

 

Lo_Object = {}; // leeres Objekt

 

Lo_Object.<Text1 := "Text1";
Lo_Object.<Text2 := "Text2";
Lo_Object.<Array := ["t11","t12,"t13"];
Lo_Object.<Array := ["t21","t32,"t43"];
Lo_Object.<Value1 := 3;
Ls_text = Lo_Object.Array[1][2]; // ergibt "t43"
Lc_Char = Lo_Object.Array[1][2][1]; // ergibt '4'