home *** CD-ROM | disk | FTP | other *** search
- #include "iostream.h"
- #include "csmalloc.h"
- #include "demodb.h"
-
-
- ////////////////////////////////////////////////////////////////////////
- /////////////// Display Intro screen //////////////////////////////////
- ////////////////////////////////////////////////////////////////////////
-
- void help(void)
- {
- cout<<endl<<endl;
- cout<<"DEMO-2 version 1.0 for "<<_CP_PLATFORM<<endl;
- cout<<" Fills the database by parsing an input ASCII file."<<endl;
- cout<<"Copyright (c) ComBits, 1996"<<endl;
- cout<<"Compiled: "<<__DATE__<<", "<<__TIME__<<endl<<endl;
- cout<<"SYNTAX: load <filename> "<<endl;
- cout<<" filename: The name of the input file. "<<endl<<endl;
- cout<<"EXAMPLE: load college.txt "<<endl;
- }
-
- ////////////////////////////////////////////////////////////////////////
- /////////////// Main program //////////////////////////////////////////
- ////////////////////////////////////////////////////////////////////////
-
-
-
- int main(int argc,char *argv[])
- {
-
-
-
- #define BUFFERLENGTH 200
-
-
- char LineBuffer[BUFFERLENGTH];
- char NameBuffer[BUFFERLENGTH];
- char DataBuffer[BUFFERLENGTH];
-
-
- //alloc_logging(TRUE); // Uncomment if you like allocation logging.
-
- DEMO demo; // An instance of the generated DEMO class.
-
- if(argc!=2)
- {
- help();
- return 1;
- }
-
-
-
- ////// Create Database and Indexes.
- ////// If they exist, they are OVERWRITTEN!
-
- if(!demo.define())
- {
- cout<<"Error, can't create database. "<<endl;
- return 8;
- }
-
-
-
- ////// Open the now existing Database and Indexes.
-
- if(!demo.open(100)) // Open with 100Kb buffers.
- {
- cout<<"Error, can't open databases. "<<endl;
- return 8;
- }
-
-
-
-
- ////// Open input file.
-
-
- FILE *fp;
-
-
- fp=fopen(argv[1],"r");
-
- if(fp==NULL)
- {
-
- cout<<"Error, can't open input file "<<argv[1]<<'.'<<endl;
- return 12;
-
- }
-
-
-
- cout<<endl<<endl;
-
- ////// Parse input file.
-
-
- while(!feof(fp))
- {
-
- if(fgets(LineBuffer,BUFFERLENGTH,fp))
- {
- trim_string(LineBuffer); // Remove leading and trailing white space.
- if(strlen(LineBuffer)) // Skipping empty lines.
- {
-
- str_split(LineBuffer,' ',DataBuffer,NameBuffer);
-
- trim_string(NameBuffer);
- trim_string(DataBuffer);
-
- demo.append(); // Insert empty record.
-
- demo.name(NameBuffer); // Update name field.
- demo.data(DataBuffer); // Update data field.
-
- if(demo.numrec()%713==1) // Update counter every 713 records.
- cout<<"\r Record "<<demo.numrec()<<'.';
-
- }
- }
-
- }
-
-
- cout<<"\r Record "<<demo.numrec()<<'.'<<endl;
-
-
- ////// Close input file.
-
- fclose(fp);
-
-
- ////// Close Database and Indexes.
-
- if(!demo.close())
- {
- cout<<"Error, while closeing databases. "<<endl;
- return 8;
- }
-
- ////// Display errors IF ANY! Otherwise nothing is displayed.
-
- demo.display_error();
-
-
- ////// Return error level 0 to the command line.
-
- return 0;
-
- }