Lade...
 

CX_UNIT_RATE::UnitConvert

CX_UNIT_RATE::UnitConvert

Beschreibung:

Diese Funktion konvertiert eine Einheit in eine andere. Dazu wird die Ausgangseinheit und die Zieleinheit, in die konvertiert werden soll, übergeben. Der Rückgabewert stellt den bei der Konversion übrigbleibenden Rest dar. Um feststellen zu können, ob die Konversion erfolgreich war, wird ein Objekt übergeben, das nach der Konversion als Wahrheitswert anzeigt, ob sie erfolgreich war.

Code-Beispiel:

In dem Beispiel-Programm wird eine Konvertierung von "6 m" in

Stangen durchgeführt, wobei angenommen wird, das ein Einheiten-Verhältnis von "1 Stange = 2,4 m" definiert wurde. 

Var(unitRate, fromValue, toValue, converted)

  ...    // Definition des Einheiten-Verhältnisses, das in unitRate gespeichert wird

CreateTransObject(CX_VALUE) -> fromValue
"6 m" fromValue Put
CreateTransObject(CX_VALUE) -> toValue
"0 Stangen" toValue Put
CreateTransObject(CX_NUMERIC) -> converted
fromValue toValue converted unitRate Call(UnitConvert)


In diesem Beispiel ist eine Konvertierung von Meter in Stangen möglich, so dass der Wahrheitswert converted TRUE (den Wert "1") enthält. Der Wert von toValue hat sich auf "2 Stangen" geändert. Der bei der Konvertierung übrigbleibende Rest von "1,2 m" befindet sich nach dem Funktionsaufruf auf dem Stack.

Stack
Stack Position Objekttyp Kurzbeschreibung
Stack(In) Top CX_UNIT_RATE das Einheiten-Verhältnis
Top-1 CX_NUMERIC der Wahrheitswert, der anzeigt, ob die Konvertierung erfolgreich war
Top-2 CX_VALUE die Zieleinheit; nach erfolgreicher Konvertierung ist der Nummernanteil des Wertes neu gesetzt, ansonsten bleibt er unverändert
Top-3 CX_VALUE die Ausgangseinheit
Stack(Out) Top CX_VALUE oder NULL der bei der Konvertierung übrigbleibende Rest
Funktionsaufruf: Call(UnitConvert)