6.8.58 DMcob_ValueChangeBuffer

Mit dieser Funktion kann eine von IDM gemanagte Wertereferenz manipuliert werden. Entweder kann der Gesamtwert ersetzt werden oder ein einzelner Elementwert in einer Sammlung. Im Unterschied zu DMcob_ValueChange kann bei dieser Funktion ein Puffer für String-Rückgabewerte angegeben werden, der größer als der Standardpuffer ist.

Handelt es sich beim AnyValue-Parameter um eine Sammlung, z.B. vom Typ DT-vector, DT-list, DT-hash, DT-matrix oder DT-refvec, so kann durch Angabe des DM-ValueIndex-Parameters ein Elementwert ausgetauscht werden. Analog zu den vordefinierten Attributen ist eine Erweiterung einer Sammlung möglich indem schrittweise der um +1 erhöhte Index verwendet wird. Für assoziative Felder ist einfach die Nutzung eines noch nicht verwendeten Indexschlüssels möglich.

Wird eine Sammlung im DM-Value-Parameter dem Ziel komplett (also mit NULL als DM-ValueIndex-Parameter) zugewiesen, so wird der gesamte Wert mit allen Werteelementen kopiert. Die Umwandlung eines Argumentes in einen lokal gemanagten Wert erfordert ebenso ein komplettes Kopieren um die weitere Manipulation zu ermöglichen.

77 AnyValue pointer value  null.
77 StringBuffer pic X(100) value  spaces.
77 StringLength pic 9(9)   binary value 100.

call "DMcob_ValueChangeBuffer" using
            DM-StdArgs
            AnyValue
            DM-ValueIndex
            DM-Value
            StringBuffer
            StringLength.

Parameter

<-> DM-options of DM-StdArgs

Hier sind folgende Optionen möglich:

Option

Bedeutung

DMF-AppendValue

Bei Sammlungen wird der Datenwert aus DM-Value hinten angehängt. Der Index muss hierfür NULL sein.

DMF-SortBinary

Bei Sammlungen erfolgt für den neu gesetzten Wert abschließend eine Sortierung des neu gesetzten Wertes. Kombinierbar mit DMF-SortReverse.

DMF-SortLinguistic

Bei Sammlungen erfolgt für den neu gesetzten Wert abschließend eine Sortierung, welche für Strings nach linguistischen Regeln (siehe hierzu die eingebaute Funktion sort()) erfolgt. Kombinierbar mit DMF-SortReverse.

DMF-SortReverse

Bei Sammlungen erfolgt für den neu gesetzten Wert abschließend eine Sortierung in umgekehrter Reihenfolge.

-> AnyValue

Handle des verwalteten Wertes, welcher verändert werden soll.

-> DM-ValueIndex

Dieser Parameter kann für die Änderung von Elementwerten in Sammlungen verwendet werden und dient zur Angabe des Index. Ansonsten sollte DM-idx-datatype mit DT-void belegt werden. Dieser Parameter muss nicht eine gemanagte Wertereferenz sein.

-> DM-Value

Dieser Parameter definiert den Wert, der gesetzt werden soll. Es kann sich dabei um eine gemanagte oder auch um eine ungemanagte Wertereferenz handeln.

<- StringBuffer

Puffer für den String, um Strings zu ändern, die länger als 80 Zeichen sind.

-> StringLength

Länge des Puffers (hier 100), muss der Definition entsprechen.

Rückgabewert

DM-status of DM-StdArgs

DM-error

Wertesetzung konnte nicht durchgeführt werden. Das kann auf einen fehlerhaften Aufruf, eine nicht gemanagte oder ungültige Wertereferenz oder eine fehlerhafte Indizierung hinweisen.

DM-success

Funktion erfolgreich ausgeführt, die Wertesetzung war erfolgreich oder der Wert war schon gesetzt.

Verfügbarkeit

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

Siehe auch

Funktion DMcob_ValueChange

Kapitel „Verwendung des Datentyps anyvalue“