updf_dump

updf_dump kopiert die Streams, Storages und Properties der Streams und Storages einer UPDF-Datei in ein Directory.

bool = updf_dump(stg, ssDir)
bool = updf_dump(stg, ssDir, mode)

Returnwert

bool ist TRUE (1) wenn die Funktion erfolgreich war und sonst FALSE (0).

Parameter

stg

stg ist ein Storage-Objekt (siehe updf_create_file, updf_open_file, updf_create_storage).

ssDir

ssDir ist der Name des Verzeichnisses.

mode

Ist einer der folgenden Werte:

Wert

Bedeutung

0 oder UPDF_FAIL_IF_EXIST

Dies ist der Default-Wert, wenn mode nicht angegeben wird. Falls eine Datei oder ein Directory mit dem Namen ssDir existiert schlägt die Funktion fehl.

UPDF_REMOVE_DIRECTORY

Das Verzeichniss bzw. die Datei wird zuvor gelöscht.

UPDF_OVERWRITE

Verzeichnisse bzw. Dateien werden überschrieben.

UPDF_PROPSONLY

Speichert nur die Properties des Storages stg.

Kommentar

Die Properties der Elemente werden in xml-Dateien mit der Dateinamenserweiterung ._props_ ausgegeben. Existiert z. B. der Stream „Test Stream“ wird die Datei „Test Stream._props_“ erzeugt.

<?xml version="1.0" encoding="utf-8" ?>
  <props version="1.0">
    <p n="Units" t="s">
      <v>1/s</v>
    </p>
    <p n="add_offset" t="f">
      <v>17.2</v>
    </p>
</props>

Die _props_-Dateien enthalten drei XML-Elemente <props/>, <p/> und <v/>. <p/> hat vier Attribute n (Name), t (Typ), nr (Anzahl an Zeilen), nc (Anzahl an Spalten). Folgende Typen sind vorhanden:

Wert

Bedeutung

d

double

f

float

i8

int8. 8-Bit Integer mit Vorzeichen.

ui8

uint8

i16

int16

ui16

uint16

i32

int32

ui32

uint32

i64

int64

ui64

uint64

s

utf-8-String.

b

blob (binary large object) base64 kodiert.

Hinter den Bezeichnungen in der Tabelle kann noch ein „v“ für Vektor oder „m“ für Matrix stehen. Beispiele: „ui64“ (unsigned int 64 Bits) „ui64v“ (Vektor von „ui64“) „ui64m“ (Matrix von „ui64“). Bei Vektoren muss das Attribut nr vorhanden sein. Bei Matrizen muss nr und nc vorhanden sein.

Beispiel

def test_updf_dump()
{
    ssPath = GetTempPath();
    ssFile = ssPath + "test-dump.updf";
    stg = updf_create_file(ssFile);

    props = updf_prop_open(stg);
    updf_prop_set_at(props, "double", updf_propval_new(1.23));
    updf_prop_set_at(props, "blob", updf_propval_new("a\0x0b", UPDF_BLOB));
    updf_prop_close(props);

    updf_dump(stg, ssFile + "-dir", UPDF_OVERWRITE);

    updf_close_storage(stg);

    stg = updf_create_file(ssPath + "test1.updf");
    updf_gen(stg, ssFile + "-dir");
    props = updf_prop_open(stg);

    pv = updf_prop_get_at(props, "double");
    if (type(pv) == "error") {
        error();
    }
    val = updf_propval_get(pv);
    if (val != 1.23) {
        error();
    }

    pv = updf_prop_get_at(props, "blob");
    if (type(pv) == "error") {
        error();
    }
    val = updf_propval_get(pv);
    if (val != "a\0x0b") {
        error();
    }

    updf_prop_close(props);
    updf_close_storage(stg);
}

test_updf_dump();

History

Version

Beschreibung

R2012.1 (5.40.1)

Neues Flag UPDF_PROPSONLY.

5.6.0

Neu.

id-2043439