home *** CD-ROM | disk | FTP | other *** search
- /*************************************/
- /* */
- /* AUoH Progressive Door Prize Lotto */
- /* */
- /* DataBase extract routine */
- /* */
- /* Michael D. Groshart - 16 Aug 89 */
- /* */
- /*************************************/
-
- #include <fcntl.h>
-
- typedef struct sb_block
- {
- long id;
- char user[4];
- char fill1[13];
- char code;
- char fill2;
- char data[105];
- } SBblock;
-
- #define NUMBLOCKS 8
- #define BLOCKSIZE (sizeof(SBblock))
- #define BUFFERLEN (NUMBLOCKS*BLOCKSIZE)
-
- SBblock buffer[NUMBLOCKS];
-
- #define DATABLOCK 0x80000000 /* Bit mask to determine block type */
-
- read_db(name,add)
- char *name;
- void (*add)();
- {
- register int fd, bytes, i, nent;
-
- if ((fd = open(name,O_RDONLY)) < 0) return 0;
-
- while ((bytes = read(fd,buffer,BUFFERLEN)) > 0)
- {
- for (i = 0; i < (bytes / BLOCKSIZE); i++)
- {
- if (buffer[i].id & DATABLOCK)
- {
- switch(buffer[i].code)
- {
- case 'N':
- case 'R':
- add(buffer[i].user,buffer[i].data);
- default:
- break;
- }
- }
- }
- }
-
- close(fd);
-
- return 1;
- }
-