home *** CD-ROM | disk | FTP | other *** search
-
- #include "CIncludesCode.h"
- #include <Memory.h>
- #include <Files.h>
- #include <Resources.h>
- #include <OSUtils.h>
-
-
- extern long numFiles;
- extern Handle database;
- extern dataHeaderType dataHeader;
-
-
- Boolean readDatabase()
- {
- short fileid = 0;
- long filesize;
- OSErr error;
- SysEnvRec world;
-
- SysEnvirons( 1, &world );
- error = FSOpen( dataFilename, world.sysVRefNum, &fileid );
- if ( !error )
- {
- error = GetEOF( fileid, &filesize );
- if ( !error )
- {
- SetHandleSize( database, filesize );
- error = ( GetHandleSize( database ) != filesize );
- if ( !error )
- error = FSRead (fileid, &filesize, *database);
- }
- (void) FSClose (fileid);
- }
-
- return ( !error );
- }
-
- Boolean loadDatabase()
- {
- Boolean okay;
-
- database = GetResource( databaseType, databaseID );
- okay = ( !ResError() && database );
-
- if ( okay )
- if ( (*((long*) *database) == 0x00000000) && (GetHandleSize( database ) == 4) )
- okay = readDatabase();
-
- if ( okay )
- {
- dataHeader = *((dataHeaderType*) *database);
- numFiles = dataHeader.numFiles;
- }
- return okay;
- }
-