.object
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.{10*10 + 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 := [["a21","a32","a43"],["b24","b35","b46"],["c27","c38","c49"]]; Lo_Object.<Value1 := 3; Ls_Text = Lo_Object.Array[2]; // ergibt "t13" Ls_Text = Lo_Object.Array.[0][2]; // ergibt ebenfalls "t13" Ls_Text = Lo_Object.Array.[1][2][1]; // ergibt "c38" Lc_Char = Lo_Object.Array.[1][2][1][2]; // ergibt '8' |
---|
Standardtypenkonversionen:
keine.