6.8.59 DMcob_ValueCount

Liefert die Anzahl der Werte in einer Sammlung (ohne die Standardwerte) zurück. Wenn gewünscht kann auch der Indextyp bzw. der höchste Indexwert zurückgeliefert werden.

Der zurückgelieferte Wert gibt die Anzahl der Werte (ohne die Standardwerte) an. Zusammen mit der Funktion DMcob_ValueIndex lassen sich so einfach Schleifen über alle indizierten Werte bzw. Elemente realisieren.

77 AnyValue pointer  value  null.
77 Count    pic 9(9) binary value 0.

call "DMcob_ValueCount" using
            DM-StdArgs
            AnyValue
            DM-Value
            Count.

Parameter

<-> DM-options of DM-StdArgs

Hier sind folgende Optionen möglich:

Option

Bedeutung

DMF-GetLocalString

Diese Option bedeutet, dass bei textuellen Werten (IDs vom Typ DT-text) diese als String in der aktuell eingestellten Sprache zurückgegeben werden sollen.

DMF-GetMasterString

Diese Option bedeutet, dass bei textuellen Werten (IDs vom Typ DT-text) diese als String in der Entwicklungssprache zurückgegeben werden sollen, unabhängig davon, mit welcher Sprache der Benutzer gerade arbeitet.

DMF-DontFreeLastStrings

Normalerweise werden Strings in einem temporären Puffer an die Anwendung übergeben, der bis zum nächsten Aufruf an den IDM erhalten bleibt. Sollen Strings länger in der Anwendung gültig sein, muss diese Option DMF-DontFreeLastStrings gesetzt werden. Der Speicher wird erst dann wieder freigegeben, wenn ein Aufruf an eine IDM-Funktion ohne diese Option erfolgt und dabei ein String vom IDM an die Anwendung zurückgegeben wird.

-> AnyValue

Handle des verwalteten Wertes, von welchem die Werteanzahl geholt wird. Es sollte eine gemanagte Wertereferenz oder Funktionsargument sein.

<- DM-Value

Hierin wird der Count-Wert zurückgeliefert. Es kann sich hierbei um eine gemanagte Wertereferenz handeln, muss aber nicht.

Folgende Rückgaben sind je nach AnyValue-Parameter zu erwarten:

AnyValue -Typ

Count-Rückgabetyp

Bemerkung

DT-refvec, DT-list, DT-vector

DT-integer

Höchster Indexwert

DT-matrix

DT-index

Höchster Indexwert

DT-hash

DT-datatype

Beliebiger Indextyp (anyvalue)

ansonsten

DT-void

Unindizierter WertN

<- Count

0 … INT_MAX

Anzahl von Werten (ohne die Standardwerte bei Index [0], [0,*] oder [*,0]).

DM-Value

Höchster Indexwert, kann entweder void (skalarer Wert), ein integer-Wert (eindimensionales Feld), ein index-Wert (zweidimensionales Feld) oder ein Datentyp (assoziatives Feld) sein.

Rückgabewert

DM-status of DM-StdArgs

DM-error

Der Anzahl der Werte konnte nicht ermittelt werden. Das kann auf einen fehlerhaften Aufruf oder eine nicht gemanagte oder ungültige Wertereferenz hinweisen.

DM-success

Das Abfragen der Werteanzahl war erfolgreich.

Verfügbarkeit

Nur COBOL-Schnittstelle für Micro Focus Visual COBOL.

Siehe auch

Funktion DMcob_ValueChange, DMcob_ValueGet, DMcob_ValueIndex

Kapitel „Verwendung des Datentyps anyvalue“

Eingebaute Funktionen countof(), itemcount()