Navigation: Platzhalter und Variablen > Platzhalter Premium-Lizenz >

Platzhalter: Var

Diese Seite drucken
Vorherige Seite Nächste Seite
Zurück zur Kapitelübersicht

FG Eigene und mächtige Variablenverwaltung mit [cX.Var(ID).X]:

 

Mit diesen Platzhaltern können eigene Variablenbereiche definiert, flexibel verwendet, gespeichert und geladen, serialisiert sowie gemeinsam gelöscht werden.

Ein solcher Bereich kann auch sehr gut zum Ablegen von Programmeinstellungen verwendet werden, da die Einstellungen beliebig sein können und das Sichern/Wiederherstellen dieser Einstellungen direkt unterstützt wird.

 

Für die Einträge können auch Datentypen definiert werden. Neben den typisierten Exportmöglichkeiten (z.B. für den Datenaustausch mit Webdiensten per JSON) ist dadurch auch eine echte binäre Ausgabe möglich, was etwa manchmal für die Übergabe von binären Strukturen an DLL-Aufrufe benötigt wird.

 

Der Datentyp des Eintrags kann durch das Anhängen eines speziellen Zeichens an den Wertenamen (Postfix) bestimmt werden. Dieser wird beim Schreiben überprüft, und bei einem ungültige Wert wie z.B. "AB" für ein Zahlenfeld wird das Fehlerereignis ::Var_Formatfehler bzw. ::Var(ID)_Formatfehler aufgerufen, welches einen neuen Wert für den Eintrag zurückliefern kann. Andernfalls bleibt der Eintrag unverändert.

Mögliche Typen-Postfixe sind "%" für ganzzahliger Wert (32bit Integer), ">" für ganzzahlige 16bit-Werte, "<" für ganzzahlige 8bit-Werte (Bytes), "!" für Fließkommazahl, "#" für Datum/Uhrzeit, "?" für Ja/Nein-Einträge (Boolean) oder "-" für interne, anonyme Einträge, welche nicht im Editor von [cX.Var()._Editieren()] aufgeführt sind.

Datentypen spielen neben der Werteprüfung auch eine Rolle bei der typisierten Serialisierung (siehe ._JSON) oder dem Editieren der Inhalte (siehe ._Editieren()).

 

Einzelne Einträge können auch ihrerseits Listen sein, auf deren Eintrag Nummer X dann direkt per [cX.Var().Eintrag(X)] zugegriffen werden kann. Die Anzahl der Elemente in einem Listeneintrag kann per .[cX.Var()._Max(Eintrag)] ermittelt werden.

 

Folgende Platzhalter stehen als [cX.Var(ID).X] zur Verfügung:

 

.XZugriff auf den Wert X (Name oder Index 1..._Anzahl)
._AnzahlAnzahl der Werte im Variablenbereich ID
._Eintrag(Index)Zugriff auf den per Index (Name oder numerischer Index 0..n) angegebenen Eintrag (alternative Schreibweise).
Wird ein ungültiger Wert in einen mit Datentyp versehenen Eintrag geschrieben, wird das Fehlerereignis ::Var_Formatfehler aufgerufen.
._Name(Index)Ermitteln des Eintragsnamens an der per Index angegebenen Position
._FehlerFeldName des Feldes, in das zuletzt ein ungültiger Wert eingetragen werden sollte

 

._Editieren(X)das Lesen dieses Platzhalters erstellt ein Eingabeformular für die Bearbeitung der enthaltenen Felder. Als Ergebnis wird 0 bei Abbruch und 1 bei der Bestätigung des Formulars durch den Anwender geliefert.
Definierte Datentypen werden geprüft und berücksichtigt, anonyme Einträge (mit - am Ende) werden nicht aufgeführt.
Als Index X kann hier der Dialogtitel angegeben werden, optional gefolgt von Breite;X;Y

 

._Histogramm(Modus;Text) Liefert eine Liste aller unterschiedlichen Einträge mit Anzahl.
Zum Modus siehe [cX.Stapel().Histogramm].

 

._Max(Name)Ermitteln der Anzahl Einträge des Listeneintrags Name
._Name(Index)Ermitteln des Eintragsnamens an der per Index angegebenen Position

 

._LeerenSetzen auf: kein Inhalt, um alle Werte in Variablenbereich ID zu löschen, Wertename/-index zum Löschen eines einzelnen Eintrags oder Namensmaske für mehrere Elemente. Die Elemente bleiben erhalten, nur die Inhalte werden zurückgesetzt (siehe auch ._Löschen)
._LöschenSetzen auf: kein Inhalt, um alle Einträge in Variablenbereich ID zu löschen, Wertename/-index zum Löschen eines einzelnen Eintrags oder Namensmaske für mehrere Elemente. Die Elemente werden samt Inhalt aus der Liste entfernt (siehe auch ._Leeren)

 

._Laden(Modus)Setzen auf Dateinamen: Laden des mit _Speichern gespeicherten Variablenbereichs ID
._Speichern(Modus)Setzen auf Dateiname speichert den Dateninhalt in die Datei als Name=Wert-Liste
In Modus kann jeweils der Datentyp angegeben werden (siehe unten bei _Serialisiert)

 

._Liste(Modus)Setzen auf eine mehrzeilige Liste mit Variablenname=Wert legt mehrere Inhalte auf einmal fest,
Lesen liefert eine entsprechende Liste aller enthaltenen Variablen (auch z.B. nutzbar für Mehrfach-Setzen)
Beim Lesen liefert Modus=1 nur die Namen, 2 nur die Werte. Wird hier 4 addiert, ergibt das eine sortierte Liste.

 

 

._KopiereAusSkriptSetzen kopiert alle Benutzervariablen aus den Skriptvariablen in das Objekt
(nur normale Variablen, keine Unterobjekte wie cX.Var- oder cX.Stapel)
._KopiereInSkriptSetzen kopiert alle Benutzervariablen aus dem Objekt in die Skriptvariablen
Mit diesen beiden Funktionen kann etwa eine Kopie der aktuellen Variableninhalte im Skript gesichert und wiederhergestellt werden.

 

._KopiereAusSkriptSetzen auf Maske (oder leer) kopiert alle passenden (oder alle) Variablen aus den Skriptvariablen in das zuvor geleerte Objekt
._KopiereInSkriptSetzen auf Maske (oder leer) kopiert alle passenden (oder alle) Variablen aus dem Objekt in die (zuvor geleerten) Skriptvariablen
Hinweis: Mit diesen beiden Funktionen können beispielsweise erst alle Variablen gesichert und dann ein Var-Inhalt in die cX-Variablen überspielt werden. Danach könnte ein Vorlagen-Text, in dem die Var-Felder einfach als [Variablen] enthalten sind, direkt mit den Inhalten des Var-Objekts ausgefüllt werden (einfacher als jede Variable mit [cX.Var([VarId]).Feld] o.ä. auszuschreiben und die passende [VarId] zu setzen)..

 

._SerialisiertLesen/Schreiben des Gesamtinhalts als BASE64-codierte Zeichenkette (mit Präfix "cXV5"), etwa für das Abspeichern/Wiederherstellen der Daten
Optional kann noch als Index ein anderes Format gewählt werden (als Zahl oder Format-Name):
1/CX4=cX4-kompatibles Format, 2/XML=XML, 3/JSON=JSON, 4/BIN=Binär (nur Lesen), 5/LIST=Liste, 6/CSV=CSV, 7/Z64=Komprimierter Inhalt als Base64, 8;Abschnitt=INI-Abschnitt (nur Schreiben), sonst cX5-Format
Die Formate XML und JSON eigenen sich etwa  für das Abspeichern/Wiederherstellen der Daten oder den Datenaustausch mit Webdiensten.

 

._Suche(Name;Wert;Maske)Durchsucht alle definierten Var()-Objekte und liefert die ID des ersten, bei dem das angegebene Paar existiert.
Der Wert kann als Maske angegeben werden.
Optional kann noch eine Maske für die IDs der Var()-Objekte angegeben werden, welche durchsucht werden sollen.
._SucheID(Wertemaske)Liefert die erste ID des Eintrags, dessen Wert der angegebenen Maske entspricht.
Optional kann mit zusätzlichem ;1 eine Liste aller passenden Eintrags-IDs angefordert werden.
Wird ein dritter Parameter angegeben, ist dies der Maximalwert (Zahl oder Datum), wobei alle Einträge zwischen dem als Maske angegebenen Wert oder Datum und diesem ermittelt werden (etwa [cX.Var()._SucheID(20;1;30)] für alle IDs (1) mit Werten von 20 bis 30).

 

._UnterschiedZu(Index)Vergleicht den Var-Inhalt mit einem anderen per Index (ID des Vergleichs-Var) angegebenen und liefert eine Liste der Feldnamen, bei denen im anderen Var-Objekt der Inhalt abweicht oder nicht existiert. Existiert das andere Var-Objekt nicht, wird ein Fehler ausgelöst.

 

 

Beispiel:

***  Demo der Var()-Objekte

***  Einträge in [cX.Var(Zahlen)] einsetzen

  Setze  in [cX.Var(Zahlen).Zahl1]:  'Eins'

  Setze  in [cX.Var(Zahlen).Zahl2]:  'Zwei'

  Setze  in [cX.Var(Zahlen).Zahl3]:  'Drei'

  

(   Setze  in [cX.Var(Zahlen)._Löschen]:  'Zahl2'

  

(   Setze  in [cX.Var(Zahlen)._Speichern]:  'TestSammlung.cxv'

(   Setze  in [cX.Var(Zahlen)._Laden]:  'TestSammlung.cxv'

  

***  Einträge aus [cX.Var(Zahlen)] holen

  Meldung  "Anzahl: [cX.Var(Zahlen)._Anzahl]¶Zahl 1: [cX.Var(Zahlen).Zahl1]  =  [cX.Var(Zahlen).1]¶Zahl 2: [cX.Var(Zahlen).Zahl2]  =  [cX.Var(Zahlen).2]¶Zahl 3: [cX.Var(Zahlen).Zahl3]  =  [cX.Var(Zahlen).3]" (Titel: 'Info', Info, OK)

 

Das Beispielskript zeigt, wie Var-Objekte zum Ablegen und Zugreifen auf Daten eingesetzt werden können. Die auskommentierten Zeilen stellen zudem noch andere Möglichkeiten vor, etwa das Löschen eines Eintrags aus der Liste oder das Speichern bzw. Laden des Inhalts.

 


 

Stapel-Platzhalter

Andere Platzhalter

Platzhalter für cXtensionen

DLL-Aufrufe

 

 

 


cX-Webseite: http://www.clickexe.net