Category : C Source Code
Archive   : C2DBASE1.ZIP
Filename : DBASE.H

 
Output of file : DBASE.H contained in archive : C2DBASE1.ZIP

/*This header file must be included for any "C" program that uses any of the
DBASE "C" functions.*/

#define MAXFIELD 30 /*maximum fields per record*/
#define MAXRECLEN 512 /*maximum record length in bytes*/
#define MEMOMAX 2048 /*maximum memo field allowed to be read*/

/*DBASE header structure*/
struct dbhead
{
char db; /*file flag*/
char year;
char month;
char day;
long quan; /*number of records in file*/
int idunno; /*don't quite know what this is*/
int reclgth; /*number of bytes in record*/
char misc[20]; /*other stuff*/
};

/*DBASE field structure*/
struct dbfield
{
char name[11]; /*field name*/
char type; /*field type*/
char guess[4]; /*your guess is as good as mine*/
char length; /*field length*/
char decimal; /*decimal positions if numeric*/
char other[13]; /*other stuff??*/
};

struct ndxhead /*index file header information*/
{
char dunno[18]; /*don't know what this is yet*/
int xrecsize; /*index file record size*/
char guess[4]; /*don't know what this is yet*/
char ndxflds[100]; /*fields indexed by the .NDX file*/
};

struct ndx /*index file informaton structure*/
{
char name[35]; /*.NDX filename*/
int filenum; /*DOS file handle number*/
int fldnum; /*number of fields indexed in this file*/
int xrecsize; /*# of bytes of each index file record*/
char fields[MAXFIELD/3][11]; /*field names*/
};

struct dbinfo
{
int error; /*non-zero indicates error code & empty structure*/
char filname[35]; /*file name*/
int filenum; /*.DBF file number for program use*/
int ndxnum; /*number of index files with this .DBF*/
struct ndx ndxfile[10]; /*index file information - up to 10 files*/
int dbtnum; /*.DBT file number for program use*/
struct dbhead info; /*file header information*/
int fieldnum; /*number of fields per record*/
struct dbfield field[MAXFIELD]; /*field pointer*/
};

struct cmemvar /*character memory variable structure- 'cmem' is global*/
{
char name[11]; /*memory variable name*/
char c30f[2]; /*these 2 want to be 0xC3 & 0x0F*/
/*true only for the first record of a .MEM file*/
char null; /*null byte--00*/
char d84d[2]; /*these 2 wants to be 0xD8 & 0x4D*/
char size; /*size of character string*/
char nulls[15]; /*15 null bytes*/
};