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