home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The C Users' Group Library 1994 August
/
wc-cdrom-cusersgrouplibrary-1994-08.iso
/
listings
/
v_09_12
/
9n12103a
< prev
next >
Wrap
Text File
|
1991-10-30
|
2KB
|
36 lines
// Listing 2 - Header file for binaryfile class
// This contains the class's elements and in-line functions
//
enum FILEMODE {Readonly, Update, AnyWrite, Append, Recreate};
enum READMODE {FirstRecord, NextRecord, PreviousRecord, LastRecord};
enum SHAREMODE {NoneShared, ReadShared, WriteShared};
class binaryfile {
private:
char name[81]; // name of file (size is DOS specific)
enum FILEMODE mode; // access mode of the file
enum SHAREMODE share; // whether shared access is allowed
unsigned length; // record length
int handle; // file handle (-1 if not open)
long header; // size of header at start of file
long count; // number of records in the file
long recnbr; // current record number (starting at 1)
long locked; // if >0, currently locked record
long countrecords(); // prototype of private function
public:
char *record; // pointer to record area
// inline functions to read private elements
long getcount () {
return (share == WriteShared ? countrecords() : count);
};
long getheader () {return header;};
unsigned getlength () {return length;};
long getlocked () {return locked;};
enum FILEMODE getmode () {return mode;};
char* getname (char *n) {return (strcpy (n, name));};
long getrecnbr () {return recnbr;};
enum SHAREMODE getshare() {return share;};
int isopen () {return (handle >= 0);};
};