home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / WWIVMODS / PRE412.ZIP / UPRINT.C < prev    next >
Text File  |  1990-05-02  |  3KB  |  108 lines

  1. /* ELRIC12.MOD */
  2. /* Print out user stats, V1.1 */
  3. /* Written by Lord Elric AKA Wayne McDaniel */
  4. /* Dedicated to Slug-Bug */
  5. /* WWIVNet 1@8251  WWIV Link 1@18251*/
  6. /* Thanks to The Black Dragon for some clues on file opening/closing/reading.
  7.    You are free to use/modify/distribute this however you desire, as long as
  8.    you leave the credits alone, except to add your own. */
  9.  
  10. #include <stdio.h>
  11. #include <string.h>
  12. #include <io.h>
  13. #include <fcntl.h>
  14. #include <sys\stat.h>
  15. #include "vardec.h"
  16. char userfile[81];
  17. int configfile;
  18. configrec syscfg;
  19.  
  20.  
  21.  
  22.  
  23. void print_recs(char *outfile)
  24. {
  25.   FILE *prnt;
  26.   int f,i;
  27.   unsigned int loop,num=0;
  28.   unsigned long len;
  29.   userrec user;
  30.   char line[81];
  31.  
  32.   if ((f=open(userfile,O_RDWR|O_BINARY,S_IREAD|S_IWRITE))<=0)
  33.   {
  34.     printf("\nCould not open user list %s\n",userfile);
  35.     abort();
  36.   }
  37.  
  38.   if ((prnt=fopen(outfile,"w"))==NULL)
  39.   {
  40.     printf("Can't access printer! ");
  41.     abort();
  42.   }
  43.  
  44.   len=filelength(f);
  45.   num=(len/sizeof(userrec))+!(len%sizeof(userrec));
  46.   for (loop=0;loop<=num;loop++)
  47.   {
  48.     if (sizeof(userrec)==read(f,&user,sizeof(userrec))) {
  49.       if (loop>0) {
  50.       printf("\015Printing user #%u of %u",loop,(num-1));
  51.       if (!(user.inact)) {
  52.       if (loop>1)
  53.  
  54. fputs("-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-\n",prnt);
  55.  
  56.  
  57.       sprintf(line,"# %4d  Handle: %-30s  Name: %-20s\n",
  58.           loop,user.name,user.realname);
  59.  
  60.       fputs(line,prnt);
  61.       sprintf(line,"Phone: %s  Posts: %5d  Mails: %5d  FeedBacks %5d\n",
  62.           user.phone,user.msgpost,user.emailsent,user.feedbacksent);
  63.       fputs(line,prnt);
  64.       sprintf(line,"Logons: %4d    Uploads: %3d    Downloads: %3d\n",
  65.           user.logons,user.uploaded,user.downloaded);
  66.       fputs(line,prnt);
  67.       sprintf(line,"Age: %2d  Birthday   %02d/%02d/%02d\n\n",user.age,
  68.             user.month,user.day,user.year);
  69.       fputs(line,prnt);}
  70.       }
  71.     }
  72.   }
  73.   close(f);
  74.   fclose(prnt);
  75. }
  76.  
  77. main()
  78. {
  79.  
  80.   char out[81];
  81.   char s[81];
  82.  
  83.   configfile=-1;
  84.   strcpy(s,"CONFIG.DAT");
  85.   configfile=open(s,O_RDWR | O_BINARY);
  86.   if (configfile<0) {
  87.     printf("%s NOT FOUND.\n",s);
  88.     printf("This program must be run from the main BBS directory");
  89.     exit(0);
  90.     }
  91.   read(configfile,(void *) (&syscfg), sizeof(configrec));
  92.   close(configfile);
  93.  
  94.  
  95.   sprintf(userfile,"%sUSER.LST",syscfg.datadir);
  96.  
  97.  
  98.   printf("\n\nUser Stats printout for WWIV 4.xx\n");
  99.   printf("By Lord Elric  1@2851 WWIVnet\n\n");
  100.   printf("If you have modified you VARDEC.H file, you need\n");
  101.   printf("to recompile this, or you will get bad data....\n\n");
  102.   printf("Enter name of output file\n<CR> will send to printer\n");
  103.   gets(out);
  104.   if (out[0]==0)
  105.     strcpy(out,"prn");
  106.   print_recs(out);
  107. }
  108.