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 |
---|---|
Bei Sammlungen wird der Datenwert aus DM-Value hinten angehängt. Der Index muss hierfür NULL sein. |
|
Bei Sammlungen erfolgt für den neu gesetzten Wert abschließend eine Sortierung des neu gesetzten Wertes. Kombinierbar mit DMF-SortReverse. |
|
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. |
|
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
Fun