home *** CD-ROM | disk | FTP | other *** search
/ The Devil's Doorknob BBS Capture (1996-2003) / devilsdoorknobbbscapture1996-2003.iso / Dloads / WWIVMODS / MODSUNKN.ZIP / SUBCON.C < prev    next >
C/C++ Source or Header  |  1990-06-13  |  2KB  |  78 lines

  1. /*  CONVERT SUBS.DAT PROGRAM */
  2. /*  Command Parameters:  */
  3. /*  SUBCONVERT  <old subs filename>  <new subs filename>  */
  4.  
  5.  
  6.  
  7. /** 
  8. The only thing I will add is that it was compiled and tested under
  9. Turbo C 2.0, and it was tested in the large memory model. Use whatever you
  10. want, I think it should work in all of them.
  11.  
  12. Lord Elric  1@18251 LINK  1@8251 NET */
  13.  
  14.  
  15.  
  16. #include <stdio.h>
  17. #include <string.h>
  18. #include <mem.h>
  19. #include <io.h>
  20. #include <fcntl.h>
  21. #include <stdlib.h>
  22. #include <sys\stat.h>
  23. #include "vardec.h"        /* rename it from subboardrec to oldsubboardrec */
  24.  
  25. void main(int argc, char *argv[])
  26. {
  27.   int f,g;
  28.   unsigned int loop,num=0;
  29.   unsigned long len;
  30.   oldsubboardrec old;
  31.   subboardrec new;
  32.  
  33.  
  34.   if (argc<3) {
  35.     printf("\nRequires 2 parameters.\n");
  36.     printf("Usage: SUBCON oldfile newfile \n");
  37.     abort();
  38.   }
  39.   if ((f=open(argv[1],O_RDWR|O_BINARY,S_IREAD|S_IWRITE))<=0) {
  40.     printf("\nCould not open input subs file %s\n",argv[1]);
  41.     abort();
  42.   }
  43.   if ((g=open(argv[2],O_RDWR|O_BINARY|O_CREAT|O_TRUNC,S_IREAD|S_IWRITE))<=0) {
  44.     printf("\nCould not open output subs file %s\n",argv[2]);
  45.     abort();
  46.   }
  47.   printf("\n\nSize of old sub record %d",sizeof(oldsubboardrec));
  48.   printf("\nSize of new sub record %d\n\n",sizeof(subboardrec));
  49.  
  50.   len=filelength(f);
  51.   num=(len/sizeof(oldsubboardrec))+!(len%sizeof(oldsubboardrec));
  52.   for (loop=0;loop<num;loop++) {
  53.     if (sizeof(oldsubboardrec)==read(f,&old,sizeof(oldsubboardrec))) {
  54.     printf("\015Processing sub #%u of %u, %40s",loop,num-1,old.name);
  55.  
  56.     memset(&new,0,sizeof(subboardrec));    /* Nice to clear out garbage */
  57.     strcpy(new.name,old.name);        /* Now copy all data over    */
  58.     strcpy(new.filename,old.filename);
  59.     new.key=old.key;
  60.     new.readsl=old.readsl;
  61.     new.postsl=old.postsl;
  62.     new.anony=old.anony;
  63.     new.age=old.age;
  64.     new.maxage=0;
  65.     new.sex=0;
  66.     new.gold=0;
  67.     new.ansi=0;
  68.     new.maxmsgs=old.maxmsgs;
  69.     new.ar=old.ar;
  70.     new.storage_type=old.storage_type;
  71.     new.type=old.type;
  72.     write(g,&new,sizeof(subboardrec));    
  73.     }
  74.   }
  75.   close(f);
  76.   close(g);
  77. }
  78.