How to filter data from tex file

Requirements in filtering the text file. OVERWHELMED TO ACCEPT SUGGESTIONS. THANKYOU :)

1. first my professor required me NOT to change the MAIN function(because he made it)

2. I have to make 3 getlogs() STRING FUNCTIONS:
a. string getlogs(); - accepts no paramters, SHOWS ALL THE CONTENTS OF TEXT FILE

b. string getLogs(const string & a); - accepts 1 parameter -SHOWS ONLY THE LINE WHICH CONTAINS THE SPECIFIED DATE FROM MAIN FUNCTION which is "2014-08-01"


c. string getLogs(const string & b, const string & c); - accepts 2 parameters, SHOWS ONLY THE LINES FROM THE DATE START to DATE END specified at THE MAIN FUNCTION which is date start-"2014-08-01";DateEnd = "2014-08-10";

3. all COUT should be in the MAIN FUNCTION

TEXTFILE CONTAINS:
2014-08-01 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-02 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-03 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-04 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-05 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-06 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-07 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-08 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-09 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-10 06:13:14,Name,4.5,CustomUnit,CustomType
2014-08-11 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-01 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-03 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-01 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-05 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-01 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-07 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-01 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-09 07:13:14,Name,4.5,CustomUnit,CustomType
2014-08-10 07:13:14,Name,4.5,CustomUnit,CustomType


REQUIRED OUTPUT SHOULD BE:

1.ALL CONTENTS
2. LINES WHICH CONTAINS THE DATE 2014-08-01
3. LINES FROM 2014-08-01 TO 2014-08-10

so far this is my codes, I appreciate your reccomendations and revisions :)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
//MAIN

#include <iostream>
#include <string>
#include <fstream>
#include <dirent.h>
#include "LogReader.h"

int main(int argc, char* argv[]) {

string contents;

LogReader l("/home/kaertech/stats_20140801_061314.log");

// test first getLogs() no parameters
contents = l.getLogs();
std::cout << "File content is: " << std::endl;
std::cout << contents << std::endl;

// test 2nd getLogs function which accepts 1 parameter which shows the line containing the specified date only
std::string strFilterDate = "2014-08-01";
contents = l.getLogs(strFilterDate);
std::cout << "File content is: " << std::endl;
std::cout << contents << std::endl;

// test 3rd getLogs function accepts 2 parameters that shows the line from the date start up to date end
std::string strDateStart = "2014-08-01";
std::string strDateEnd = "2014-08-10";
contents = l.getLogs(strDateStart, strDateEnd);
std::cout << "File content is: " << std::endl;
std::cout << contents << std::endl;

}
//LogReader.h

#include <string>
#include <iostream>
#include <fstream>
#include <vector>

#include <unistd.h>
using namespace std;

#ifndef LOGREADER_H_
#define LOGREADER_H_

class LogReader {

public:
LogReader(const string & pth) : path(pth) { };

string getLogs();
string getLogs(const string & a);
string getLogs(const string & b, const string & c);


private:
string path;
string fContent;
vector<string> lines;

};


#endif /* LOGREADER_H_ */

//LogReader.cpp

/*
* LogReader.cpp
*
* Created on: Aug 18, 2014
* Author: geraldyne
*/


#include <stdio.h>
#include <iostream>
#include <string.h>
#include <fstream>
#include <dirent.h>
#include <sstream>


#include "LogReader.h"





#include <unistd.h>
using namespace std;

string LogReader::getLogs(const string & a)
{


ifstream logFile(path.c_str());

if (logFile.fail())
{
cout << "Can't open file" << endl;
return;
}


while (getline (logFile,fContent) )
{
if (fContent.find(b) != string::npos)
lines.push_back(fContent);

for (size_t i=0; i<lines.size(); i++)
cout << lines[i] << endl;
}


}
/*i can only use cout at the main function to show the output which is the STRING CONTENTS from main

void LogReader::display_contents() const
{
for (size_t i=0; i<lines.size(); i++)
cout << lines[i] << endl;

}*/
Please, do not double-post. The first thread should be enough: http://www.cplusplus.com/forum/unices/140803/
Topic archived. No new replies allowed.