prdbd.c

来自「db.* (pronounced dee-be star) is an adva」· C语言 代码 · 共 477 行 · 第 1/2 页

C
477
字号
            vtprintf(DB_TEXT("%4d "), task->record_table[i].rt_data);            if (task->record_table[i].rt_fdtot != -1             && task->record_table[i].rt_fdtot != 0)            {                vtprintf(DB_TEXT("[%3d]%-10.10s "),                    task->record_table[i].rt_fields,                    task->field_names[task->record_table[i].rt_fields]);            }            else            {                vtprintf(DB_TEXT("                "));            }            vtprintf(DB_TEXT("%4d "), task->record_table[i].rt_fdtot);            vtprintf(DB_TEXT("%04x\n"), task->record_table[i].rt_flags);        }    }    vtprintf(DB_TEXT("\n\n------------------------------------------------------------------\n"));    vtprintf(DB_TEXT("FIELD TABLE:\n\n"));    if (!symbolic)    {        vtprintf(DB_TEXT("                       key   key  record\n"));        vtprintf(DB_TEXT("fld #  key  type  len  file  num  offset  rec #  flags  dims\n"));        vtprintf(DB_TEXT("-----  ---  ----  ---  ----  ---  ------  -----  -----  ----\n"));        for (i = 0; i < task->size_fd; ++i)        {            vtprintf(DB_TEXT("%4d    %c   "), i, task->field_table[i].fd_key);            vtprintf(DB_TEXT("  %c   "), task->field_table[i].fd_type);            vtprintf(DB_TEXT("%3d  "), task->field_table[i].fd_len);            vtprintf(DB_TEXT("%4d  "), task->field_table[i].fd_keyfile);            vtprintf(DB_TEXT("%3d  "), task->field_table[i].fd_keyno);            vtprintf(DB_TEXT("%4d    "), task->field_table[i].fd_ptr);            vtprintf(DB_TEXT("%3d     "), task->field_table[i].fd_rec);            vtprintf(DB_TEXT("%04x  "), task->field_table[i].fd_flags);            for (j = 0; j < MAXDIMS && task->field_table[i].fd_dim[j]; ++j)                vtprintf(DB_TEXT("[%d]"), task->field_table[i].fd_dim[j]);            vtprintf(DB_TEXT("\n"));        }    }    else    {        vtprintf(DB_TEXT("                                key     key record\n"));        vtprintf(DB_TEXT("   [#]field     key type len    file    num offset  [#]record     flags dims\n"));        vtprintf(DB_TEXT("--------------- --- ---- --- ---------- --- ------ -------------- ----- ----\n"));        for (i = 0; i < task->size_fd; ++i)        {            vtprintf(DB_TEXT("[%3d]%-10.10s   %c "),                i, task->field_names[i], task->field_table[i].fd_key);            vtprintf(DB_TEXT("   %c "), task->field_table[i].fd_type);            vtprintf(DB_TEXT("%3d "), task->field_table[i].fd_len);            if (task->field_table[i].fd_key != NOKEY)            {                vtprintf(DB_TEXT("%-10.10s "),                    task->file_table[task->field_table[i].fd_keyfile].ft_name);            }            else            {                vtprintf(DB_TEXT("           "));            }            vtprintf(DB_TEXT("%3d "), task->field_table[i].fd_keyno);            vtprintf(DB_TEXT("  %4d "), task->field_table[i].fd_ptr);            vtprintf(DB_TEXT("[%2d]%-10.10s "),                task->field_table[i].fd_rec,                task->record_names[task->field_table[i].fd_rec]);            vtprintf(DB_TEXT("%04x  "), task->field_table[i].fd_flags);            for (j = 0; j < MAXDIMS && task->field_table[i].fd_dim[j]; ++j)                vtprintf(DB_TEXT("[%d]"), task->field_table[i].fd_dim[j]);            vtprintf(DB_TEXT("\n"));        }    }    vtprintf(DB_TEXT("\n\n------------------------------------------------------------------\n"));    if (task->size_st)    {        vtprintf(DB_TEXT("SET TABLE:\n\n"));        if (!symbolic)        {            vtprintf(DB_TEXT("              owner  own ptr  # of 1st    total\n"));            vtprintf(DB_TEXT("set #  order  rec #   offset    member  members  flags\n"));            vtprintf(DB_TEXT("-----  -----  -----  -------  --------  -------  -----\n"));            for (i = 0; i < task->size_st; ++i)            {                vtprintf(DB_TEXT("%4d     %c    "), i, task->set_table[i].st_order);                vtprintf(DB_TEXT("%4d   "), task->set_table[i].st_own_rt);                vtprintf(DB_TEXT(" %4d    "), task->set_table[i].st_own_ptr);                vtprintf(DB_TEXT("  %4d    "), task->set_table[i].st_members);                vtprintf(DB_TEXT(" %3d     "), task->set_table[i].st_memtot);                vtprintf(DB_TEXT("%04x\n"), task->set_table[i].st_flags);            }        }        else        {            vtprintf(DB_TEXT("                         [#]owner    own ptr first  total\n"));            vtprintf(DB_TEXT("    [#]set      order     record     offset  member members flags\n"));            vtprintf(DB_TEXT("--------------- ----- -------------- ------- ------ ------- -----\n"));            for (i = 0; i < task->size_st; ++i)            {                vtprintf(DB_TEXT("[%3d]%-10.10s     %c "),                    i, task->set_names[i], task->set_table[i].st_order);                vtprintf(DB_TEXT("[%2d]%-10.10s "),                    task->set_table[i].st_own_rt,                    task->record_names[task->set_table[i].st_own_rt]);                vtprintf(DB_TEXT("%7d "), task->set_table[i].st_own_ptr);                vtprintf(DB_TEXT("%6d "), task->set_table[i].st_members);                vtprintf(DB_TEXT("%7d "), task->set_table[i].st_memtot);                vtprintf(DB_TEXT("%04x\n"), task->set_table[i].st_flags);            }        }        vtprintf(DB_TEXT("\n\n------------------------------------------------------------------\n"));    }    if (task->size_mt)    {        vtprintf(DB_TEXT("MEMBER TABLE:\n\n"));        if (!symbolic)        {            vtprintf(DB_TEXT("              mem ptr  # of 1st  total\n"));            vtprintf(DB_TEXT("mem #  rec #   offset  sort fld  sort flds\n"));            vtprintf(DB_TEXT("-----  -----  -------  --------  ---------\n"));            for (i = 0; i < task->size_mt; ++i)            {                vtprintf(DB_TEXT("%4d   %4d   "), i, task->member_table[i].mt_record);                vtprintf(DB_TEXT(" %4d    "), task->member_table[i].mt_mem_ptr);                vtprintf(DB_TEXT("  %3d     "), task->member_table[i].mt_sort_fld);                vtprintf(DB_TEXT("  %3d\n"), task->member_table[i].mt_totsf);            }        }        else        {            vtprintf(DB_TEXT("                     mem ptr  # of 1st  total\n"));            vtprintf(DB_TEXT("mem #   [#]record    offset   sort fld  sort flds\n"));            vtprintf(DB_TEXT("----- -------------- -------  --------  ---------\n"));            for (i = 0; i < task->size_mt; ++i)            {                vtprintf(DB_TEXT("%4d  [%2d]%-10.10s   "),                    i,                    task->member_table[i].mt_record,                    task->record_names[task->member_table[i].mt_record]);                vtprintf(DB_TEXT("%5d    "), task->member_table[i].mt_mem_ptr);                vtprintf(DB_TEXT(" %5d     "), task->member_table[i].mt_sort_fld);                vtprintf(DB_TEXT(" %5d\n"), task->member_table[i].mt_totsf);            }        }        vtprintf(DB_TEXT("\n\n------------------------------------------------------------------\n"));    }    if (task->size_srt)    {        vtprintf(DB_TEXT("SORT TABLE:\n\n"));        if (!symbolic)        {            vtprintf(DB_TEXT("sort #  field #  set #\n"));            vtprintf(DB_TEXT("------  -------  -----\n"));            for (i = 0; i < task->size_srt; ++i)            {                vtprintf(DB_TEXT("%4d    %4d    %4d\n"),                    i, task->sort_table[i].se_fld, task->sort_table[i].se_set);            }        }        else        {            vtprintf(DB_TEXT("sort #     [#]field          [#]set\n"));            vtprintf(DB_TEXT("------  ---------------  ---------------\n"));            for (i = 0; i < task->size_srt; ++i)            {                vtprintf(DB_TEXT("%6d  [%3d]%-10.10s  [%3d]%-10.10s\n"),                    i,                    task->sort_table[i].se_fld,                    task->field_names[task->sort_table[i].se_fld],                    task->sort_table[i].se_set,                    task->set_names[task->sort_table[i].se_set]);            }        }        vtprintf(DB_TEXT("\n\n------------------------------------------------------------------\n"));    }    if (task->size_kt)    {        vtprintf(DB_TEXT("COMPOUND KEY TABLE:\n\n"));        if (!symbolic)        {            vtprintf(DB_TEXT("       key    rec\n"));            vtprintf(DB_TEXT("key #  fld #  fld #  ptr  order\n"));            vtprintf(DB_TEXT("-----  -----  -----  ---  -----\n"));            for (i = 0; i < task->size_kt; ++i)            {                vtprintf(DB_TEXT("%4d   %4d   %4d  %3d    %c\n"), i,                    task->key_table[i].kt_key,                    task->key_table[i].kt_field,                    task->key_table[i].kt_ptr,                    task->key_table[i].kt_sort);            }        }        else        {            vtprintf(DB_TEXT("         [#]compound    [#]component\n"));            vtprintf(DB_TEXT("key #     key field         field        ptr  order\n"));            vtprintf(DB_TEXT("-----  ---------------  ---------------  ---  -----\n"));            for (i = 0; i < task->size_kt; ++i)            {                vtprintf(DB_TEXT(" %4d  [%3d]%-10.10s  [%3d]%-10.10s  %3d      %c\n"), i,                    task->key_table[i].kt_key,                    task->field_names[task->key_table[i].kt_key],                    task->key_table[i].kt_field,                    task->field_names[task->key_table[i].kt_field],                    task->key_table[i].kt_ptr,                    task->key_table[i].kt_sort);            }        }    }    d_close(task);exit:#if defined(SAFEGARDE)    if (sg)        sg_delete(sg);#endif    if (task)        d_closetask(task);    return 0;}static int usage(){    vftprintf(stderr, DB_TEXT("usage: prdbd [-c] [-sg [<mode>,]<password>] dbname\n"));    vftprintf(stderr, DB_TEXT("where: -c  Disables using record/set/key names\n"));    vftprintf(stderr, DB_TEXT("       -sg Specifies the SafeGarde encryption information for the database\n"));    return(1);}VXSTARTUP("prdbd", 0)

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?