updf_propval_new

updf_propval_new erzeugt einen Property-Wert.

propval = updf_propval_new(data)
propval = updf_propval_new(data, data_type)

Returnwert

propval ist ein propval-Zeiger oder eine Zahl mit dem Wert 0 beim Auftreten eines Fehlers.

Parameter

data

data ist ein Skalar, Vektor oder Matrix (Zahl oder String).

data_type

data_type ist einer der folgenden Werte:

Wert Bedeutung
UPDF_INT8 8-Bit Integer mit Vorzeichen (-127..128).
UPDF_UINT8 8-Bit Integer ohne Vorzeichen (0..255).
UPDF_INT16 16-Bit Integer.
UPDF_UINT16 16-Bit Integer (vorzeichenlos).
UPDF_INT32 32-Bit Integer.
UPDF_UINT32 32-Bit Integer (vorzeichenlos).
UPDF_INT64 64-Bit Integer.
UPDF_UINT64 64-Bit Integer (vorzeichenlos).
UPDF_FLOAT 32-Bit Real-Zahl.
UPDF_DOUBLE 64-Bit Real-Zahl.
UPDF_STRING Unicode-String. Wird als UTF-8 gespeichert.
UPDF_BLOB Beliebige Folge von Bytes. data muss ein String sein.

Kommentar

Bei den Typen UPDF_INT8 bis UPDF_DOUBLE muss data eine Zahl, ein Zahlenvektor oder eine Zahlenmatrix sein.

Bei dem Typ UPDF_STRING sollte data einen echten Unicode-String enthalten, weil intern eine UTF-16 nach UTF-8 Umwandlung durchgeführt wird.

Bei dem Typ UPDF_BLOB muss data ein String-Wert sein, der aber keine gültigen Unicode-Zeichen enthalten muss. Er kann auch Null-Zeichen enthalten. Mit der Funktion mem_set kann ein solcher String auch aus anderen Datentypen erzeugt werden.

Beispiel

def test_updf_propval_new()
{
    pv = updf_propval_new(1.23);
    r = updf_propval_get(pv);
    if (r != 1.23) {
        error();
    }

    pv = updf_propval_new(123, UPDF_INT8);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new(123, UPDF_UINT8);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new(123, UPDF_INT16);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new(123, UPDF_UINT16);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }
    pv = updf_propval_new(123, UPDF_INT32);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new(123, UPDF_UINT32);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }
    pv = updf_propval_new(123, UPDF_INT64);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new(123, UPDF_UINT64);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new(123, UPDF_FLOAT);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new(123, UPDF_DOUBLE);
    r = updf_propval_get(pv);
    if (r != 123) {
        error();
    }

    pv = updf_propval_new("123", UPDF_STRING);
    r = updf_propval_get(pv);
    if (r != "123") {
        error();
    }

    pv = updf_propval_new("123", UPDF_BLOB);
    r = updf_propval_get(pv);
    if (r != "123") {
        error();
    }
}

test_updf_propval_new();

History

Version Beschreibung
5.6.0 Neu

id-1298911