📄 dbf_ndx.h
字号:
/* * Copyright (c) 1993 Brad Eacker, * (Music, Intuition, Software, and Computers) * All Rights Reserved *//* * dbf .ndx header structure on disk and in memory * * Basic info taken from: * "Clipper Programming Guide, 3rd Edition, Version 5.01" * by Rick Spence */#ifndef DBF_NDX_H_#define DBF_NDX_H_#include "dbf.h"#define NDX_PAGE_SZ 512/* on disk ndx header */struct dndx_header { char dndx_st_pg[4]; /* starting page number */ char dndx_tot_pg[4]; /* total number of pages */ char dndx_filler1[4]; /* space */ char dndx_key_len[2]; /* key length */ char dndx_keys_ppg[2]; /* number of keys per page */ char dndx_key_type[2]; /* key type */ char dndx_size_key[4]; /* size of the key record */ char dndx_filler2; /* space */ char dndx_unique; /* whether or not done with unique */ char dndx_key_name[488]; /* string defining the key */};typedef struct dndx_header dndx_header_t;/* in memory ndx header */struct ndx_header { long ndx_start_pg; long ndx_total_pgs; unsigned short ndx_key_len; unsigned short ndx_keys_ppg; unsigned short ndx_key_type; char ndx_unique; long ndx_key_size; char *ndx_key_name; int ndx_fd; struct ndx_page *ndx_fp; dndx_header_t *ndx_hpage; struct ndx_record *ndx_cur_rec;};typedef struct ndx_header ndx_header_t;/* these are the possible values in the key type field */#define NDX_CHAR_TYPE 00#define NDX_NUM_TYPE 01/* on disk key record */struct dndx_record { char dndx_left_pg[4]; /* number of left page */ char dndx_dbf_rec[4]; /* dbf record number */ char dndx_key_data; /* key data */};typedef struct dndx_record dndx_record_t;struct ndx_record { long ndxr_left; long ndxr_rec; char *ndxr_key_data; struct ndx_page *ndxr_page; /* page pointer to where we are from*/ int ndxr_p_nrec; /* number of the record within page */};typedef struct ndx_record ndx_record_t;struct dndx_page { char dndxp_num_keys[4]; /* number of keys on this page */ struct dndx_record dndx_rp;};typedef struct dndx_page dndx_page_t;struct ndx_page { long ndxp_page_no; long ndxp_num_keys; dndx_page_t *ndxp_page_data; ndx_header_t *ndxp_header_p; long ndxp_last_key; struct ndx_page *ndxp_parent; /* parent page */ int ndxp_par_rno; /* record number within parent */ struct ndx_record *ndxp_records;};typedef struct ndx_page ndx_page_t;extern ndx_header_t *ndx_get_header(int);extern ndx_record_t *ndx_get_first_rec(ndx_header_t *);extern ndx_record_t *ndx_get_next_rec(ndx_header_t *, ndx_record_t *);#endif /* DBF_NDX_H_ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -