v60NumWithCharBehavior

Die Builddeskriptoroption v60NumWithCharBehavior wirkt sich auf die EGL-Handhabung des Typs NUM in Zuordnungen und Vergleichen aus.

Ab Version 7 wird der Typ NUM in Zuordnungen und Vergleichen mit CHAR-Werten von EGL wie andere numerische Typen behandelt.

Ist die Builddeskriptoroption v60NumWithCharBehavior mit YES definiert, entspricht die EGL-Verarbeitung von Variablen des Typs NUM der in früheren Versionen und in VisualAge Generator üblichen Verarbeitung. Die Unterschiede im Verhalten sind subtil und komplex. Definieren Sie diese Option nur mit YES, wenn VisualAge Generator emuliert werden muss. Weitere Informationen hierzu können Sie den in diesem Abschnitt angegebenen Beispielen entnehmen.

Die Option v60NumWithCharBehavior kann sich auf das Verhalten anderer Builddeskriptoroptionen, z. B. spacesZero und blanksAsZero, auswirken. Weitere Informationen hierzu finden Sie in spacesZero und blanksAsZero.

Werte

NO
EGL behandelt den Typ NUM wie die übrigen numerischen Typen.
YES
EGL behandelt den Typ NUM wie in VisualAge Generator üblich.

Standardwert

Der Standardwert für v60NumWithCharBehavior richtet sich nach der Builddeskriptoroption vagCompatibility:
  • Ist vagCompatibility mit YES definiert, lautet der Standardwert für v60NumWithCharBehavior YES.
  • Ist vagCompatibility mit NO definiert, lautet der Standardwert für v60NumWithCharBehavior NO.

Manuelles Definieren der Option

In den meisten Fällen ist es nicht erforderlich, die Builddeskriptoroption v60NumWithCharBehavior manuell zu definieren.

Beispiele

Wenn v60NumWithCharBehavior mit YES definiert ist, können Sie folgende Vergleiche vornehmen:
if( "2009-03-26" > 0)
  ...
end

Die Null wird für den Vergleich in "0" geändert. Beim Verhalten von Version 7 ist 0 eine Zahl und der Vergleich schlägt fehl, da "2009-03-26" eine ungültige Zahl ist.

Ist v60NumWithCharBehavior mit YES definiert, ordnet EGL über eine Byte-Verschiebung einen Wert des Typs NUM zu einem Wert des Typs CHAR zu.
num_var NUM = -4;
char_var CHAR;

char_var = num_var; // value of char_var is 't'

Beim Verhalten von Version 7 ergäbe sich der Wert '4' für char_var.


Feedback