-4

I'm completely new to C++, so please give me a change to learn!

Assuming I have a text file RoomDB.txt which stores data in the following format :

005:Room 1:Level 1:3-Jul-14:0900:3:Mathematics 101:Julia Lee
006:Room 2:Level 2:2-Jun-14:0800:2:English 101:Jared Loo
007:Room 3:Level 3:15-Apr-14:1800:3:Chinese 101:David Tay
008:Room 4:Level 4:15-Apr-14:1200:3:Science 101:Michelle Choo

How would I selectively display a particular line (or more) of data based on the fourth field (the date), such that it would look like this - (If i want to display only the lines in which the date is 15-Apr-14)

    Booking ID   Room No.   Level No.   Time   Duration   Subject     Lecturer 
----------------------------------------------------------------------------------------
       007        Room 3     Level 3    1800       3    Chinese 101  David Tay
       008        Room 4     Level 4    1200       3    Science 101  Michelle Choo

PS : Notice that the date is excluded from the desired output as it will be used as a criteria for choosing what data is to be displayed. My current code is as follows :

int main()
{
cout << "\nBooking ID   Room No.   Level No.   Time    Duration    Subject    Lecturer" << endl;
cout << "-------------------------------------------------------------------------------" << endl;

        string array[50]; // creates array to hold names
        short loop=0; //short for loop for input
        string line; //this will contain the data read from the file
        ifstream myfile ("RoomDB.txt"); //opening the file.    
        if (myfile.is_open()) //if the file is open
        {
            while (! myfile.eof() ) //while the end of file is NOT reached
            {
                getline (myfile,line); //get one line from the file
                array[loop] = line;

                cout << "At element " << loop << ", value is :" << array[loop] << endl;
                loop++;





            }

            myfile.close(); //closing the file
        }

else cout << "Unable to open file"; //if the file is not open output

}
Jared Aaron Loo
  • 668
  • 1
  • 10
  • 18

1 Answers1

0

This is a CSV like file with delimiter :, you could:

-read the file line by line using std::getline
-spliting the line by : using Boost String Algorithm.
-loading in a structure or collection for processing.
-output necessary info

NetVipeC
  • 4,402
  • 1
  • 17
  • 19