updf_enum_begin

updf_enum_begin dient in Verbindung mit updf_enum_next dazu über alle Streams und Storages eines Storage-Objekts zu iterieren.

enum = updf_enum_begin(stg)

Returnwert

enum ist ein enum-Objekt. Nach Verwendung kann es mit der Funktion updf_enum_close zerstört werden.

Parameter

stg

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

Beispiel

def test_updf_enum_begin()
{
    ssFile = GetTempPath() + "test-enum.updf";

    stg = updf_create_file(ssFile);
    stg1 = updf_create_storage(stg, "storage-1");
    f = updf_create_stream(stg1, "stream-1");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-2");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-3");
    updf_file_close(f);
    updf_close_storage(stg1);

    stg1 = updf_create_storage(stg, "storage-2");
    f = updf_create_stream(stg1, "stream-1");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-2");
    updf_file_close(f);
    f = updf_create_stream(stg1, "stream-3");
    updf_file_close(f);
    updf_close_storage(stg1);

    updf_close_storage(stg);

    stg = updf_open_file(ssFile);
    dump_stg_tree(stg, "");
    updf_close_storage(stg);
}

def dump_stg_tree(stg, name)
{
    enu = updf_enum_begin(stg);
    while ((stat = updf_enum_next(enu)) != 0) {
        if (updf_stat_get_type(stat) == UPDF_STORAGE) {
//            printf("\\%s\n", updf_stat_get_name(stat));
            stg1 = updf_open_storage(stg, updf_stat_get_name(stat), 0);
            dump_stg_tree(stg1, updf_stat_get_name(stat));
            updf_close_storage(stg1);
        } else {
//            printf("\t%s,%d\n", updf_stat_get_name(stat), updf_stat_get_len(stat));
        }
    }
    updf_enum_close(enu);
}

test_updf_enum_begin();

History

Version Beschreibung
5.6.0 Neu

id-410456