home *** CD-ROM | disk | FTP | other *** search
/ PC Online 1998 September / PCO_0998.ISO / filesbbs / dos / sbbs_src.exe / SBBS / SBL / SBLPACK.C < prev    next >
Encoding:
C/C++ Source or Header  |  1997-04-25  |  1.3 KB  |  56 lines

  1. /* SBLPACK.C */
  2.  
  3. /* Developed 1990-1997 by Rob Swindell; PO Box 501, Yorba Linda, CA 92885 */
  4.  
  5. /***************************************/
  6. /* Synchronet BBS List Database Packer */
  7. /***************************************/
  8.  
  9. #include <stdio.h>
  10. #include <share.h>
  11. #include <time.h>
  12. #include <io.h>
  13. #include <fcntl.h>
  14. #include <sys/stat.h>
  15. #include "gen_defs.h"
  16. #include "sbldefs.h"
  17.  
  18. int main(void)
  19. {
  20.     int file;
  21.     FILE *in,*out;
  22.     bbs_t bbs;
  23.  
  24. printf("\nSBLPACK v1.00  Developed 1995-1997 Rob Swindell\n\n");
  25.  
  26. if((file=open("SBL.DAB",O_RDWR|O_BINARY|O_DENYNONE|O_CREAT
  27.     ,S_IWRITE|S_IREAD))==-1) {
  28.     printf("\n\7Error opening/creating SBL.DAB\n");
  29.     exit(1); }
  30. if((in=fdopen(file,"w+b"))==NULL) {
  31.     printf("\n\7Error converting SBL.DAB file handle to stream\n");
  32.     exit(1); }
  33. setvbuf(in,0L,_IOFBF,2048);
  34. if((out=fopen("SBL.TMP","wb"))==NULL) {
  35.     printf("\n\7Error opening SBL.TMP file\n");
  36.     exit(1); }
  37.  
  38. while(!feof(in)) {
  39.     if(!fread(&bbs,sizeof(bbs_t),1,in))
  40.         break;
  41.     putchar('.');
  42.     if(!bbs.name[0])
  43.         continue;
  44.     fwrite(&bbs,sizeof(bbs_t),1,out); }
  45. fcloseall();
  46. putchar('\n');
  47. if(remove("SBL.DAB")) {
  48.     printf("\n\7Data file in use, can't remove.\n");
  49.     remove("SBL.TMP");
  50.     exit(1); }
  51. rename("SBL.TMP","SBL.DAB");
  52. printf("\nDone.\n");
  53. return(0);
  54. }
  55.  
  56.