home *** CD-ROM | disk | FTP | other *** search
/ MacFormat 1994 November / macformat-018.iso / Utility Spectacular / Developer / CIncludesTool 1.0 / modified version / source files / getDatabase.c < prev    next >
Encoding:
Text File  |  1991-08-28  |  1.2 KB  |  62 lines  |  [TEXT/MPS ]

  1. // getDatabase.c
  2. //
  3. // database functions for CIncludesCode MPW tool
  4.  
  5. #include "CIncludesCode.h"
  6. #include <Memory.h>
  7. #include <Files.h>
  8. #include <Resources.h>
  9. #include <OSUtils.h>
  10.  
  11. extern long numFiles;
  12. extern Handle database;
  13. extern dataHeaderType dataHeader;
  14.  
  15. Boolean readDatabase(void)
  16. {
  17. short fileid = 0;
  18. long filesize;
  19. OSErr error;
  20. SysEnvRec world;
  21.     
  22. SysEnvirons(1,&world);
  23. error = FSOpen(dataFilename,world.sysVRefNum,&fileid);
  24. if (!error)
  25.     {
  26.     error = GetEOF(fileid,&filesize);
  27.     if (!error)
  28.         {
  29.         SetHandleSize(database,filesize);
  30.         error = (GetHandleSize(database) != filesize);
  31.         if (!error)
  32.             {
  33.             error = FSRead (fileid,&filesize,*database);
  34.             }  // if !error
  35.         }  // if !error
  36.     (void) FSClose (fileid);
  37.     }  // if !error
  38. return (!error);
  39. }  // readDatabase()
  40.  
  41. Boolean    loadDatabase(void)
  42. {
  43. Boolean okay;
  44.     
  45. database = GetResource(databaseType,databaseID);
  46. okay = (!ResError() && database);
  47. if (okay)
  48.     {
  49.     if ((*((long*) *database) == 0x00000000) && (GetHandleSize(database) == 4))
  50.         {
  51.         okay = readDatabase();
  52.         }  // if *database
  53.     }  // if okay
  54. if (okay)
  55.     {
  56.     dataHeader = *((dataHeaderType*) *database);
  57.     numFiles = dataHeader.numFiles;
  58.     }  // if okay
  59. return okay;
  60. }  // loadDatabase()
  61.  
  62. // end of getDatabase.c