home *** CD-ROM | disk | FTP | other *** search
/ ftp.wwiv.com / ftp.wwiv.com.zip / ftp.wwiv.com / pub / UTILITY / PUSER100.ZIP / PUSER.C next >
C/C++ Source or Header  |  1992-06-09  |  4KB  |  146 lines

  1. #include <stdio.h>
  2. #include <io.h>
  3. #include <fcntl.h>
  4. #include <string.h>
  5. #include <stdlib.h>
  6. #include <sys\stat.h>
  7. #include <dos.h>
  8. #include <alloc.h>
  9. #include <time.h>
  10.  
  11. int COL = 4;
  12. int MAXCOL = 80;
  13. char FORM[81];
  14. char BUF[81];
  15.  
  16. /* DATA FOR EVERY USER */
  17. typedef struct {
  18.     char        name[31],        /* user's name */
  19.             realname[21],        /* user's real name */
  20.             callsign[7],        /* user's amateur callsign */
  21.             phone[13],        /* user's phone number */
  22.             pw[9],            /* user's password */
  23.             laston[9],        /* last date on */
  24.             firston[9],        /* first date on */
  25.             note[41],        /* sysop's note about user */
  26.             macros[3][81],        /* macro keys */
  27.             sex;            /* user's sex */
  28.     unsigned char    age,            /* user's age */
  29.             inact,            /* if deleted or inactive */
  30.             comp_type,        /* computer type */
  31.             defprot,        /* deflt transfer protocol */
  32.             defed,            /* default editor */
  33.             screenchars,screenlines,/* screen size */
  34.             sl,            /* security level */
  35.             dsl,            /* transfer security level */
  36.             exempt,            /* exempt from ratios, etc */
  37.             colors[8],        /* user's colors */
  38.             votes[20],        /* user's votes */
  39.             illegal,        /* illegal logons */
  40.             waiting,        /* number mail waiting */
  41.             sysopsub,        /* sysop sub board number */
  42.             ontoday;        /* num times on today */
  43.     unsigned short    homeuser,homesys,    /* where user can be found */
  44.             forwardusr,forwardsys,    /* where to forward mail */
  45.             msgpost,        /* number messages posted */
  46.             emailsent,        /* number of email sent */
  47.             feedbacksent,        /* number of f-back sent */
  48.             posttoday,        /* number posts today */
  49.             etoday,            /* number emails today */
  50.             ar,            /* board access */
  51.             dar,            /* directory access */
  52.             restrict,        /* restrictions on account */
  53.             ass_pts,        /* bad things the user did */
  54.             uploaded,        /* number files uploaded */
  55.             downloaded,        /* number files downloaded */
  56.             lastrate,        /* last baud rate on */
  57.             logons;            /* total number of logons */
  58.     unsigned long    msgread,        /* total num msgs read */
  59.             uk,            /* number of k uploaded */
  60.             dk,            /* number of k downloaded */
  61.             qscn,            /* which subs to n-scan */
  62.                         qscnptr[33],            /* q-scan pointers */
  63.             nscn1,nscn2,        /* which dirs to n-scan */
  64.             daten,            /* numerical time last on */
  65.             sysstatus;        /* status/defaults */
  66.     float        timeontoday,        /* time on today */
  67.             extratime,        /* time left today */
  68.             timeon,            /* total time on system */
  69.             pos_account,        /* $ credit */
  70.             neg_account,        /* $ debit */
  71.             gold;            /* game money */
  72.     unsigned char    bwcolors[8];        /* b&w colors */
  73.     unsigned char    month,day,year;        /* user's birthday */
  74.     unsigned int    emailnet,        /* email sent into net */
  75.             postnet;        /* posts sent into net */
  76.     unsigned short    fsenttoday1;        /* feedbacks today */
  77.         unsigned char   num_extended;           /* num lines of ext desc */
  78.         unsigned char   optional_val;           /* optional lines in msgs */
  79.         unsigned long   wwiv_regnum;            /* users WWIV reg number */
  80.         char            res[29];                /* reserved bytes */
  81. #if MAX_SUBS>32
  82.         unsigned long   qscn2;                  /* additional qscan ptr */
  83.         unsigned long   qscnptr2[MAX_SUBS-32];  /* additional quickscan ptrs */
  84. #endif
  85. } userrec;
  86.  
  87. int userfile = -1;
  88.  
  89. void open_user()
  90. {
  91.   if (userfile<0) {
  92.     userfile=open(".\\DATA\\USER.LST",O_RDWR | O_BINARY);
  93.     if (userfile<0) {
  94.       userfile=-1;
  95.     }
  96.   }
  97. }
  98. void strcol(size,s)
  99. int size;
  100. char *s;
  101. {
  102.   COL+=size;
  103.   if(COL >= MAXCOL){
  104.     printf("\n    ");
  105.     COL= 4 + size;
  106.   }
  107.   sprintf(FORM,":%%-%us",size);
  108.   printf(FORM,s);
  109. }
  110. void intcol(size,s,val)
  111. int  size;
  112. unsigned long val;
  113. {
  114.   sprintf(FORM,"%s%%%ulu",s,size);
  115.   sprintf(BUF,FORM,val);
  116.   strcol(strlen(BUF),BUF);
  117. }
  118. void main(int argc, char **argv){
  119.   userrec rec;
  120.   unsigned int uid;
  121.  
  122.   fprintf(stderr,"\tPUSER 1.00 Copyright 1992 Richard Spencer Balding\n");
  123.   open_user();
  124.   uid=1;
  125.   read(userfile, &rec, sizeof(rec));
  126.   while(read(userfile, &rec, sizeof(rec)) > 0 ){
  127.     printf("%3u",uid++);
  128.     if(rec.inact){
  129.       printf("   ***DELETED**\n");
  130.       continue;
  131.     }
  132.     COL+=4;
  133.     intcol(3,"SL=",rec.sl);
  134.     strcol(12,rec.phone);
  135.     strcol(30,rec.name);
  136.     strcol(20,rec.realname);
  137. /*
  138.     strcol(9,rec.pw);
  139.     sprintf(BUF,"%9s to %9s",rec.firston,rec.laston);strcol(22,BUF);
  140. */
  141.     printf("\n");
  142.     COL=0;
  143.   }
  144.   exit(0);
  145. }
  146.