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 + -
显示快捷键?