updf_dump kopiert die Streams, Storages und Properties der Streams und Storages einer updf-Datei in ein Directory.
Returnwert
bool ist TRUE (1) wenn die Funktion erfolgreich war und sonst FALSE (0).
Parameter
stg ist ein Storage-Objekt (siehe updf_create_file, updf_open_file, updf_create_storage).
ssDir ist der Name des Verzeichnisses.
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 Directory bzw. die Datei wird zuvor gelöscht. |
| UPDF_OVERWRITE | Directorys bzw. Dateien werden überschrieben. |
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 |
|---|---|
| 5.6.0 | Neu |
Siehe auch
id-2043439