Expand|Select|Wrap|Line Numbers
- #include <iostream>
- #include <string>
- #include <fstream>
- #include <new>
- #include <iomanip>
- using namespace std;
- /*
- function: countRecords
- params: string fileName, bool outputTF
- purpose: counts records from passed file name and outputs data if bool is true
- */
- int countRecords(string fileName, bool outputTF)
- {
- ifstream inFile;
- int recordCount = 0;
- inFile.open(fileName.c_str(),ios::in);
- if(inFile.is_open())
- {
- //priming read
- inFile.ignore(1000,'\n');
- recordCount = 1;
- //loop
- while(!inFile.eof())
- {
- inFile.ignore(1000,'\n');
- recordCount++;
- }
- if(outputTF == true)
- {
- cout << "recordCount= " << recordCount << endl;
- }
- }else{ cout << "File would not open!" << endl; }
- inFile.close();
- return recordCount;
- }
- void listData(string arr)
- {
- cout.setf(ios::left);
- cout << setw(5) << "#" << setw(5) << "ID" << setw(50) << "DESC" << setw(8) << "COST" << setw(6) << "SUPPLY" << endl;
- cout << endl;
- }
- void changeData(string arr)
- {
- listData(arr);
- system("pause");
- }
- int printMenu()
- {
- int option = 0;
- cout << endl;
- cout << " 1 Change Data" << endl;
- cout << " 0 Exit" << endl;
- cout << "Type number from left to choose operation: ";
- cin >> option;
- return option;
- }
- // ***************** MAIN PROCEDURE ***********************
- int main()
- {
- string fileName = "data1.dat";
- int c = countRecords(fileName,false);//one hundred million records MAX
- string **p = new string * [c];
- for(int i=0; i<c; i++)
- {
- p[i] = new string [4];
- }
- ifstream inFile;
- inFile.open("data1.dat",ios::in);
- if(inFile.is_open())
- {
- while(!inFile.eof())
- {
- for(int i=0; i<c; i++)
- {
- for(int t=0; t<4; t++)
- {
- if(t==3)
- {
- getline(inFile,p[i][t],'\n');
- //cout << t << ": " << p[i][t] << endl;
- //system("pause");
- }else{
- getline(inFile,p[i][t],'_');
- //cout << t << ": " << p[i][t] << endl;
- //system("pause");
- }
- }//end for t
- }//end for i
- }//end while !eof
- int option = printMenu();
- while(option != 0)
- {
- system("cls");
- if(option == 1){ changeData(p); }
- else if(option == 2){ /*function here*/ }
- option = printMenu();
- }
- }else{
- cout << "File '" << fileName << "' did not open!" << endl;
- system("pause");
- system("exit");
- }//end if is_open
- // Memory Cleanup - p
- for (int i = 0; i < c; i++)
- {
- delete[] p[i];
- }
- delete[] p;
- p = 0;
- //return 0
- return 0;
- }