// EZSAMPLE.HPP // Easy class that loads a file and places it in a matrix. Operators duly overloaded // LOG // 13-May-94 : Aniadida getSize #include #include template class ezSample { vecType ** inSample; unsigned size; // file & array size unsigned vecSize; // vector Size public: ezSample( const char * _fName, unsigned _vecSize ); ~ezSample(); vecType* operator [] ( unsigned _idx ) const { return ( _idx ezSample::ezSample( const char * _fName, unsigned _vecSize ) { // -- Main constructor // --------------------------------------------------------------------- // first compute size ifstream fin( _fName ); char foo[300]; unsigned numLines = 0; do { fin.getline( foo, 299 ); numLines ++ ; } while ( strlen(foo) > 0 ); size = --numLines; fin.close(); // dim everything inSample = new vecType * [size]; if (!inSample) { cout << "No more memory\n"; exit(1); } vecSize = _vecSize; fin.open( _fName, ios::in ); for ( unsigned i = 0; i < size; i ++ ) { inSample[i] = new vecType[ vecSize ]; if (!inSample[i]) { cout << "No more memory\n"; exit(1); } for (unsigned j = 0; j < vecSize; j ++ ) fin >> inSample[i][j]; } fin.close(); }; // --------------------------------------------------------------------- template ezSample::~ezSample() { // -- Main destructor // --------------------------------------------------------------------- for ( unsigned i = 0; i < size; i ++ ) delete inSample[i]; delete[] inSample; };