home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / magazine / pcmagazi / 1992 / 14 / findfile.h < prev    next >
C/C++ Source or Header  |  1991-11-20  |  2KB  |  81 lines

  1. // findfile.h
  2.  
  3. #if !defined(FINDFILE_H)
  4. #define FINDFILE_H
  5.  
  6. #include<dos.h>
  7. #include<dir.h>
  8. #include<string.h>
  9. #include"stddefs.h"
  10. #include"compiler.h"
  11.  
  12. class FindFile
  13.     {
  14.     struct ffblk F;
  15.     int notfound;
  16.     int nomore;
  17.  
  18. public:
  19.     FindFile(char *filename, unsigned type);
  20.     int FindNext(void);
  21.     int NotFound(void)      {   return notfound;    }
  22.     int Found(void)         {   return !notfound;   }
  23.     char *Name(void)        {   return F.ff_name;   }
  24.     long Size(void)         {   return F.ff_fsize;  }
  25.     };
  26.  
  27. class RecursiveFileFind
  28.     {
  29.     char rffdirspec[80], rfffilespec[13];
  30.     BOOL keycheck, eatkey;
  31.  
  32.     BOOL rff(char *dirspec, char *filespec);
  33.     virtual void PostResults(char *,struct ffblk *) = 0;
  34.  
  35. public:
  36.     RecursiveFileFind(void)
  37.         {
  38.         *rffdirspec = *rfffilespec = '\0';
  39.         }
  40.  
  41.     RecursiveFileFind(char *dspec, char *fspec)
  42.         {
  43.         Init(dspec,fspec);
  44.         rff(rffdirspec,rfffilespec);
  45.         }
  46.  
  47.     void Init(char *dspec, char *fspec, BOOL keychecking = FALSE)
  48.         {
  49.         strcpy(rffdirspec,dspec);
  50.         strcpy(rfffilespec,fspec);
  51.         keycheck = keychecking;
  52.         eatkey = FALSE;
  53.         }
  54.  
  55.     BOOL Run(void)
  56.         {
  57.         return rff(rffdirspec,rfffilespec);
  58.         }
  59.  
  60.     BOOL Run(char *dirspec, char *filespec)
  61.         {
  62.         return rff(dirspec,filespec);
  63.         }
  64.  
  65.     void SetKeyCheck(void)
  66.         {
  67.         keycheck = TRUE;
  68.         }
  69.     void SetEatKey(void)
  70.         {
  71.         keycheck = eatkey = TRUE;
  72.         }
  73.     };
  74.  
  75. #endif
  76.  
  77.  
  78.  
  79.  
  80.  
  81.