home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: 10 Tools
/
10-Tools.zip
/
cslio205.zip
/
EXAMPLES
/
2
/
LOAD.CPP
< prev
next >
Wrap
Text File
|
1996-10-10
|
3KB
|
152 lines
#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;
}